css3的新个性
css3新增了很多新个性,如伪类选择器、属性选择器、边框款式、flex弹性布局、动画、色彩突变、@media响应式布局等
flex弹性布局
flex全称Flexbox(弹性盒子布局),flex是CSS3新增的一种布局模型,能够灵便、响应式的设置页面布局。flex能够为盒状模型提供最大的灵活性。依据父元素设置好的宽度/高度等一系列属性,子元素会依据父元素的宽度/高度来进行填充扭转,使元素在对齐、排列和散布变得更加不便。
容器属性:
display:设置为display: flex;或display: inline-flex;来定义一个弹性容器。flex-direction:指定主轴的方向,能够是row(程度方向)、row-reverse、column(垂直方向)、column-reverse。flex-wrap:管制我的项目在容器中是否换行,能够是nowrap(不换行)、wrap(换行)、wrap-reverse。justify-content:定义我的项目在主轴上的对齐形式,如flex-start、center、flex-end、space-between、space-around。align-items:定义我的项目在穿插轴上的对齐形式,如flex-start、center、flex-end、baseline、stretch。align-content:定义多根轴线的对齐形式,只有一根轴线时不起作用。
我的项目属性:
flex:设置我的项目的伸缩比例,能够管制我的项目在容器内的占比。flex-grow:定义我的项目的放大比例,默认为0,即不放大。flex-shrink:定义我的项目的放大比例,默认为1,即能够放大。flex-basis:定义我的项目在没有伸缩空间时的初始大小。align-self:定义单个我的项目在穿插轴上的对齐形式,笼罩容器的align-items属性。
更多详情:https://www.cnblogs.com/qdhxhz/p/11953758.html
案例:
css* { padding: 0; margin: 0; list-style: none;}html,body { width: 100%; height: 100%;}.box { width: 100%; height: 100%; display: flex; flex-direction: column; overflow: hidden; // 头部 .header { width: 100%; height: 50px; background: hotpink; } // 身材 .main { flex: 1; overflow: auto; background: salmon; } // 脚部 .footer { width: 100%; height: 50px; background: skyblue; }}html <!-- 引入css文件 --> <link rel="stylesheet" href="./index.css"> <!-- flex弹性布局 --> <div class="box"> <div class="header">头部</div> <div class="main">身材</div> <div class="footer">脚部</div> </div>
效果图:
选择器
属性选择器 | 形容 |
---|---|
[attr] | 抉择具备指定属性的元素 |
[attr=value] | 抉择属性值齐全等于指定值的元素 |
[attr~=value] | 抉择属性值中包蕴含指定词汇的元素 |
[attr^=value] | 抉择属性值中以指定值结尾的元素 |
[attr$=value] | 抉择属性值以指定值结尾的元素 |
[attr=value]* | 抉择属性值中蕴含指定值的元素 |
附加:[attr|=value] 抉择属性值中以指定值结尾的元素,或以指定值结尾后紧跟着连字符-"
案例:
css<style> [name='msg'] { border: 2px solid red; } </style>html<input type="text" name="msg">js<script> const msg = document.querySelector("[name='msg']") console.log(msg);</script>
效果图:
伪类选择器 | 形容 |
---|---|
:nth-child(n) | 抉择父元素下的第 n 个子元素 |
:nth-last-child(n) | 抉择父元素下的倒数第 n 个子元素 |
:first-child | 抉择父元素下的第一个子元素 |
:last-child | 抉择父元素下的最初一个子元素 |
:only-child | 抉择父元素下惟一的子元素 |
:empty | 抉择没有子元素的元素 |
:checked | 抉择被选中的表单元素 |
:focus | 抉择以后获取焦点的元素 |
:hover | 抉择鼠标悬停的元素 |
案例:
css /* ul 第三个li变成红色 */ ul li:nth-child(3) { color: red; } /* ul 倒数第二个li */ ul :nth-last-child(2) { color: rgb(18, 10, 235); } /* 第一个ul下的li */ ul :first-child { color: #fff; } /* ul下最初一个li */ ul :last-child { color: chartreuse; } // 表单元素 获取焦点后的变动 input :focus { border: 5px solid yellow; }html <input type="text" name="msg"> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul>
效果图:
伪元素选择器 | 形容 |
---|---|
::before | 元素内容后面插入内容 |
::after | 元素内容前面插入内容 |
::first-line | 抉择元素的第一行 |
::first-letter | 抉择元素的第一个字母 |
案例:
css /* 在元素后面插入内容 */ .choose::before { content: '你好'; margin: 0 10px; } /* 在元素前面插入内容 */ .choose::after { content: "前面插入"; margin: 0 10px; color: #fff; }html <p class="choose">伪元素选择器</p>
效果图: