2021-04-16

CSS3媒体查询

CSS2 中引入了 @media 规则,它让为不同媒体类型定义不同样式规则成为可能。

例如:您可能有一组用于计算机屏幕的样式规则、一组用于打印机、一组用于手持设备,甚至还有一组用于电视,等等。
不幸的是,除了打印媒体类型之外,这些媒体类型从未得到过设备的大规模支持。

CSS3 引入了媒体查询

CSS3 中的媒体查询扩展了 CSS2 媒体类型的概念:它们并不查找设备类型,而是关注设备的能力。

媒体查询可用于检查许多事情,例如:

        视口的宽度和高度

        设备的宽度和高度

        方向(平板电脑/手机处于横向还是纵向模式)

        分辨率

使用媒体查询是一种流行的技术,可以向台式机、笔记本电脑、平板电脑和手机(例如 iPhone 和 Android 手机)提供定制的样式表。

媒体查询由一种媒体类型组成,并可包含一个或多个表达式,这些表达式可以解析为 true 或 false。

CSS3 媒体类型:

        all            用于所有媒体类型设备。

        print         用于打印机。

        screen     用于计算机屏幕、平板电脑、智能手机等等。

        speech    用于大声“读出”页面的屏幕阅读器。

下面的例子在视口宽度为 480 像素或更宽时将背景颜色更改为浅绿色(如果视口小于 480 像素,则背景颜色会是粉色):
@media screen and (min-width: 480px) {
    body {
        background-color: lightgreen;
    }
}

box-sizing

允许我们在元素的总宽度和高度中包括内边距(填充)和边框。

假如不指定 CSS box-sizing 属性,默认情况下,元素的宽度和高度是这样计算的:

        width + padding + border = 元素的实际宽度

        height + padding + border = 元素的实际高度

这意味着:当您设置元素的宽度/高度时,该元素通常看起来比您设置的更大(因为元素的边框和内边距已被添加到元素的指定宽度/高度中)。

box-sizing 属性解决了这个问题。

        border-box;,则宽度和高度会包括内边距和边框:

        content-box 正常计算

        Inherit 从父元素继承 box-sizing 属性的值。

CSS3渐变

CSS3 渐变(gradients)可以让你在两个或多个指定的颜色之间显示平稳的过渡

以前,你必须使用图像来实现这些效果。但是,通过使用 CSS3 渐变(gradients),你可以减少下载的事件和宽带的使用。此外,渐变效果的元素在放大时看起来效果更好,因为渐变(gradient)是由浏览器生成的。

CSS3 定义了两种类型的渐变(gradients):

        线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向

        径向渐变(Radial Gradients)- 由它们的中心定义

语法:

        background: linear-gradient(direction, color-stop1, color-stop2, …);

        background: radial-gradient(shape size at position, start-color, …, last-color);

线性渐变

语法:

        background: linear-gradient(direction, color-stop1, color-stop2, …);

从上到下(默认情况下)

        background: linear-gradient(red, blue);

线性渐变 - 从左到右

        background: linear-gradient(to right, red , blue);

对角

        background: linear-gradient(to bottom right, red , blue);

使用角度

        角度是指水平线和渐变线之间的角度,逆时针方向计算。换句话说,0deg 将创建一个从下到上的渐变,90deg 将创建一个从左到右的渐变。

        background: linear-gradient(180deg, red, blue);

径向渐变

语法:

        background: radial-gradient(shape size at position, start-color, …, last-color);

颜色节点均匀分布

        background: radial-gradient(red, yellow, green);

颜色节点不均匀分布

        background-image: radial-gradient(red 5%, yellow 15%, green 60%);

形状为圆形

        background-image: radial-gradient(circle, red, yellow, green);

2D转换

CSS3转换,我们可以移动,比例化,反过来,旋转,和拉伸元素。

2D变换方法:

        translate()

        rotate()

        scale()

        skew()

transform

translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。

        语法:transform: translate(50px,100px);

rotate()方法,在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。

        语法:transform: rotate(30deg);

scale()方法,该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数

        语法:transform: scale(2,4);

skew() 方法,包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。

        skewX( );表示只在X轴(水平方向)倾斜。

        skewY( );表示只在Y轴(垂直方向)倾斜。

        语法:transform: skew(30deg,20deg);

3D转换

CSS3 允许您使用 3D 转换来对元素进行格式化。

3D转换方法:

        translate3d(x,y,z) 定义 3D 转化。

        scale3d(x,y,z) 定义 3D 缩放转换。

        rotate3d(x,y,z,angle) 定义 3D 旋转。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值