CSS3选择器、border、background、flex
选择器:
关系选择器:
+ :下一个满足条件的兄弟元素节点。
div + P{} //选出div的兄弟节点并且是p标签~ : 后面的满足条件的所有兄弟节点
div ~ p{} //选出div兄弟节点中所有的p节点
属性选择器:
- [attribute~=”value”] 选择器选取属性值包含指定词的元素。
- [attribute|=”value”] 选择器用于选取指定属性以指定值开头的元素,该值必须是一个完整的单词。
- [attribute^=”value”] 选择器用于选取指定属性以指定值开头的元素。
- [attribute$=”value”] 选择器用于选取指定属性以指定值结尾的元素。
- [attribute*=”value”] 选择器选取属性值包含指定词的元素。
- ::placeholer 选择带placeholeder元素
- ::selection 设置页面字体选中后的状态
伪类选择器:
当前元素的状态(全部是当前元素的限制条件,想操作谁就选谁)
- :not 不是什么什么
- :root 根目录选择器(HTML下是html标签)
- :target 选择被锚点标记之后的元素
要考虑其他元素(要关注其他元素):
- :first-child 第一个子元素
- :last-child 最后一个子元素
- :only-child 仅有一个子元素
- :nth-child(n) 第n 个子元素 (可写计算公式 ,n从0开始查数)CSS从1开始查数
- :nth-last-child(n) 第n 个子元素,倒着数 (可写计算公式)
不用考虑其他元素(不关注其他类型元素):
- :first-of-type 当前类型的第一个
- :last-of-type 当前类型的最后一个
- :only-of-type 当前类型的仅有一个
- :nth-of-type 当前类型的第n个
- :nth-of-last-type 当前类型的第n个,倒着查
- :empty 元素内容为空
- :checked 元素被选中状态
- :disabled 被禁用的
- :ready-only 只能读,不能写的
:ready-write 可读可写的
当给html和body设置高度为100%后,再给里面的元素高度设置100%可充满整个页面。
border:
border-radious :
(左上,右上,右下,左下)
(上,上,下,下 / 左,右,右,左)不常用
可写为border-top-left-radious:左上角
用正方形画四分之一圆:一个角的值等于正方形的边长
box-shadow:
普通写法:
(inset(内阴影默认为外阴影(不写)),水平偏移量(正是向右,负是向左),垂直偏移量(正值向下,负值向上),阴影模糊程度(基于原边框向两侧同时模糊),传播距离(可选)(在四个方向上同时增大阴影的大小),颜色)。
可设置多个box-shadow值,先写的在上面,重复的会加重颜色。
阴影在背景颜色是上面,在文字的下面
border-image:
border-image-source:url() 引入图片
- border-image-slice:(1-5个参数,前四个参数只能为数值,不能带px表示图片的分割方式,最后一个参数填上fill会把内容区也填充)
- border-image-ouset 向外延伸多少
border-image-width 图片显示的宽度(为1表示完全填充,默认为1) - border-image-repeat 默认为stretch将被分割的图像使用拉伸的方式来填充满边框图像区域。
- repeat:将被分割的图像使用重复平铺的方式来填充满边框图像区域。当图像碰到边界时,如果超过则被截断。
- round:与 repeat 关键字类似。不同在于,当背景图像不能以整数次平铺时,会根据情况缩放图像。
- space: 与 repeat 关键字类似。不同在于,当背景图像不能以整数次平铺时,会用空白间隙填充在图像周围。
background:
渐变两种生成方法:
- linear-gradient()线性渐变,
- radial-gradient()径向渐变,当成一个图片来看待
常用属性
- background-image : 可以添加多个背景图片,多url
- background-origin:图片的起始位置(结束位置无法确定),
- border-box;从边框开始,
- padding-box:从padding开始(默认值)
- content-box:从content开始
- background-clip:图片的截断部分,从哪开始以外部分都不显示,
- border-box:(默认值),
- padding-box:,content-box:,text(除了文字展示范围内展示图片(只在文字下面展示),以外区域不展示图片,只在webkit下可以用,需配合谷歌特有属性
- -webkit-text-fill-color:transparent使用,用完之后文字会变成背景的一部分,这时候在设置阴影,阴影会显示在文字的前面,可以适当设置阴影的透明度来缓冲效果)
- background-attchent:
- fixed:背景图像相对于视口(viewport)固定,当范围超出原来容器就不会再显示了。;
- scroll:背景图像相对于元素固定,也就是说当元素内容滚动时背景图像不会跟着滚动,因为背景图像总是要跟着元素本身,但会随元素的祖先元素或窗体一起滚动。(默认值);
- local:背景图像相对于元素内容固定,也就是说当元素随元素滚动时背景图像也会跟着滚动,因为背景图像总是要跟着内容
- background-repeat: 可以填两个值代表水平和垂直方向,
- repeat-x:背景图像在横向上平铺;
- repeat-y:背景图像在纵向上平铺;
- repeat:背景图像在横向和纵向平铺;
- no-repeat:背景图像不平铺(默认值);
- round:当背景图像不能以整数次平铺时,会根据情况缩放图像。;
- space:当背景图像不能以整数次平铺时,会用空白间隙填充在图像周围。
- background-size:
- background-position:定位开始位置参考图片的起始位置(background-origin)
渐变:
linear-gradient(方向(可选,默认为自下到上 to bottom,to top right :到右上),起始颜色,结束颜色)
border-color的默认值等于color
Text:
- text-shadow:(水平偏移,垂直偏移,模糊值,颜色 )
- -webkit-text-stroke:描边(宽度,颜色)
调用外部的字体包:
1 | @font-face{ |
user-select: none; /*禁止文字被复制*/
box:
IE6混杂模式的盒模型
box-width = width;
触发方式:box-sizing = border-box;
overflow:
- hidden(溢出部分隐藏);
- scroll(溢出之后出现滚动条) ;
- auto(溢出之后出现滚动条,更标准),
可单独设置x,y轴(overflow)
resize: 必须配合overflow来使用,不然没效果
- none:不允许用户调整元素大小。
- both:用户可以调节元素的宽度和高度。
- horizontal:用户可以调节元素的宽度。
- vertical:用户可以调节元素的高度。
弹性盒模型:flex
弹性盒
flex-shrink:计算要计算加权,而且压缩的部分是盒子的内容区。
压缩大小 = 自己真实内容区 * flex-shrink / 所有元素(真实内容区 * flex-shrink)的总和 * 要压缩的总范围。
只设置 flex-basis 或flex-basis > width代表元素的最小宽度,会随内容区增大;
设置width后,并且width > flex-basis,width表示元素的最大宽度,则flex-basis < realwidth < width。