当前位置:   article > 正文

学习如何用CSS变量创建网页响应布局 — css var()

width: var(--width);

前言

在创新的2018年已经过去,在2019年看看如何简单做成响应性的网站

如果你未曾听说过CSS变量,那么我告诉你,它就是CSS的一种新功能,可以让你拥有在样式表中使用变量的能力,这样做时并不需要什么特别的设置呦。

从本质上讲,CSS变量可以让你摆脱老式的样式设置:

  1. h1 {
  2. font-size: 30px;
  3. }
  4. navbar>a {
  5. font-size: 30px;
  6. }
  7. 复制代码

都9102年了,这样太low了 我们换种方式

  1. :root {
  2. --base-font-size: 30px;
  3. }
  4. h1 {
  5. font-size: var(--base-font-size);
  6. }
  7. navbar>a {
  8. font-size: var(--base-font-size);
  9. }
  10. 复制代码

这样的语法看起来的确有点怪怪的,但有没有觉得它和less、sass中的变量有点类似呢,但如此一来,只要更改–base-font-size 变量,就能在整个应用中改变字号了。

今天来讲一下如何用CSS变量创建响应布局

先来一段HTML代码

  1. <ul class="item">
  2. <li>item 1</li>
  3. <li>item 2</li>
  4. <li>item 3</li>
  5. <li>item 4</li>
  6. </ul>
  7. 复制代码
老方法

在以前即使不使用CSS变量也可以把这些事情搞定。只是需要把要改变的属性在重新重置一下,需要在媒体查询中拥有自己的选择器,但会招致额外的大量代码,像下面这样:

  1. .item {
  2. display: flex;
  3. flex-direction: column;
  4. flex-wrap: wrap;
  5. justify-content: space-around;
  6. padding: 10px;
  7. li {
  8. background-color: #ff6f69;
  9. border: 1px solid #fff;
  10. font-size: 20px;
  11. height: 200px;
  12. list-style-type: none;
  13. width: 100%;
  14. }
  15. }
  16. @media (min-width: 768px) {
  17. .item {
  18. flex-direction: row;
  19. li {
  20. background-color: #ffcc5c;
  21. font-size: 50px;
  22. height: 300px;
  23. width: 50%;
  24. }
  25. }
  26. }
  27. @media (min-width: 992px) {
  28. .item {
  29. flex-wrap: nowrap;
  30. li {
  31. background-color: #ffeead;
  32. font-size: 100px;
  33. height: 500px;
  34. width: calc(100% / 4);
  35. }
  36. }
  37. }
  38. 复制代码
新方法

看看现在应该怎么做呢

  1. :root {
  2. --base-color: #ff6f69;
  3. --base-font-size: 20px;
  4. --direction: column;
  5. --width: 100%;
  6. --height: 200px;
  7. }
  8. 复制代码

然后应用就行了

  1. .item {
  2. display: flex;
  3. padding: 10px;
  4. justify-content: space-around;
  5. flex-direction: var(--direction);
  6. flex-wrap: var(--wrap);
  7. li{
  8. list-style-type: none;
  9. border: 1px solid #fff;
  10. height: var(--height);
  11. width: var(--width);
  12. background-color: var(--base-color);
  13. font-size: var(--base-font-size);
  14. }
  15. }
  16. 复制代码

一旦进行了这样的设置之后,我们只要在媒体查询中简单地更改变量值就行了:

  1. @media (min-width: 768px) {
  2. :root {
  3. --base-font-size: 60px;
  4. --base-color: #ffcc5c;
  5. --direction: row;
  6. --height: 300px;
  7. --width: 50%;
  8. --wrap:wrap;
  9. }
  10. }
  11. @media (min-width: 992px) {
  12. :root {
  13. --base-font-size: 100px;
  14. --base-color: #ffeead;
  15. --direction: row;
  16. --height: 500px;
  17. --width: calc(100% / 4);
  18. --wrap:nowrap;
  19. }
  20. }
  21. 复制代码

看着还是不错的 不过能写less或者scss就用那个吧 emm

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/542694
推荐阅读
相关标签
  

闽ICP备14008679号