美文网首页让前端飞
学习如何用CSS变量创建网页响应布局 — css var()

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

作者: 67a920c75520 | 来源:发表于2019-01-18 17:54 被阅读3次

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

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

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

h1 {
    font-size: 30px;
}
navbar>a {
    font-size: 30px;
}

而是主张这样写:

:root {
    --base-font-size: 30px;
}
h1 {
    font-size: var(--base-font-size);
}
navbar>a {
    font-size: var(--base-font-size);
}

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

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

这是一段html

<ul class="item">
    <li>item 1</li>
    <li>item 2</li>
    <li>item 3</li>
    <li>item 4</li>
</ul>

老方法:

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

.item {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: space-around;
    padding: 10px;

    li {
        background-color: #ff6f69;
        border: 1px solid #fff;
        font-size: 20px;
        height: 200px;
        list-style-type: none;
        width: 100%;
    }
}

@media (min-width: 768px) {
    .item {
        flex-direction: row;
        li {
            background-color: #ffcc5c;
            font-size: 50px;
            height: 300px;
            width: 50%;
        }
    }
}

@media (min-width: 992px) {
    .item {
        flex-wrap: nowrap;
        li {
            background-color: #ffeead;
            font-size: 100px;
            height: 500px;
            width: calc(100% / 4);
        }
    }
}

新方法

下面让我们来看如何使用CSS变量来解决这个问题。首先,要把我们将重复利用和更改的数值存储在变量的内部:

:root {
    --base-color: #ff6f69;
    --base-font-size: 20px;
    --direction: column;
    --width: 100%;
    --height: 200px;
}

然后,在整个页面中简单地使用这些变量就行了:

.item {
  display: flex;
  padding: 10px;
  justify-content: space-around;
  flex-direction: var(--direction);
  flex-wrap: var(--wrap);
  li{
    list-style-type: none;
    border: 1px solid #fff;
    height: var(--height);
    width: var(--width);
    background-color: var(--base-color);
    font-size: var(--base-font-size);
  }
}

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

@media (min-width: 768px) {
  :root {
    --base-font-size: 60px;
    --base-color: #ffcc5c;
    --direction: row;
    --height: 300px;
    --width: 50%;
    --wrap:wrap;
  }
}
@media (min-width: 992px) {
  :root {
    --base-font-size: 100px;
    --base-color: #ffeead;
    --direction: row;
    --height: 500px;
    --width: calc(100% / 4);
    --wrap:nowrap;
  }
}

这比我们以往的方法简便多了。只需盯住 :root,而不必为所有的选择器指定值了。

这只是一个简单的例子。设想成熟的网站会是什么样子吧,例如,用 –base-margin 来控制APP四周的多数自由空间。想翻转其值也是很容易的事情,不必用复杂的选择器来填充媒体查询了。

总之CSS变量绝对是提高响应速度时,所代表的未来

相关文章

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

    在创新的2018年已经过去,在2019年看看如何简单做成响应性的网站 如果你未曾听说过CSS变量,那么我告诉你,它...

  • DIV+CSS对SEO网站优化好处有哪些?

    div+css布局是一种网页的布局方法,是目前应用最广泛的网页布局方法。div css布局是把网页用div+css...

  • flex布局

    flex布局网页布局(layout)是 CSS 的一个重点应用。Flex 布局,可以简便、完整、响应式地实现各种页面布局

  • CSS基础布局

    CSS布局 盒模型 Flexbox 使用float布局 inline-block 布局 响应式设计和布局 CSS面...

  • CSS浮动

    CSS浮动 传统网页布局的三种方式 网页布局的本质——用 CSS 来摆放盒子。 把盒子摆放到相应位置. CSS 提...

  • HTML入门

    网页布局:div布局与CSS控制 那个学习视频是从布局开始讲起的,那我就从这里开始记笔记吧 html引用css方法...

  • 19-盒子模型

    css学习三大重点: css 盒子模型 、 浮动 、 定位 一、网页布局的本质 网页有许多大大小小的盒子组成,网页...

  • HTML/CSS 02-css基础(语法和选择器)

    有了HTML之后,我们下面就要学习CSS,使用 CSS 同时控制多重网页的样式和布局,通过CSS来提升工作效率! ...

  • CSS---浮动

    1. 浮动(float) 1.1 CSS 布局的三种机制 网页布局的核心——就是用 CSS 来摆放盒子。 CSS ...

  • 小程序中使用全局样式

    css 自定义属性 1.语法 --*来声明变量名 var(--*)来使用变量 css 自定义属性使用中,var()...

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/zwtodqtx.html