CSS3-响应式布局
CSS3-响应式布局
网页布局复杂的情况下,不考虑使用响应式布局
而网页布局不复杂的情况下,可以考虑使用响应式布局
媒体查询
媒体查询类型
媒体查询并没有任何的优先级,所以如果想要配置媒体查询的样式,需要将媒体查询写在正常的样式后
/* 只有在打印机或打印预览时应用的样式 */
@media print {
}
/* 只有在屏幕上才应用的样式 */
@media screen {
}
/* 一直都应用的样式 */
@media all {
}
全部的媒体查询类型:@media - CSS:层叠样式表 | MDN
媒体查询特性
orientation特性可以检测视口的旋转方向,以判断手机是否处于横屏状态
- portrait:视口处于纵向,即高度大于宽度
- landscape:视口处于横向,即宽度大于高度
/* 当视口宽度等于800像素时 */
@media (width:800px)
{
}
/* 当视口宽度小于等于800像素时 */
@media (max-width:800px)
{
}
/* 当视口宽度大于等于800像素时 */
@media (min-width:800px)
{
}
/* 当设备宽度等于800像素时 */
@media (device-width:800px)
{
}
运算符
可以用运算符连接多个媒体查询类型或媒体查询类型
- and:且运算符
- or:或运算符
- not:否定运算符
BFC
BFC时Block Formatting Context(块级格式上下文),可以理解元素的一个“特异功能”
该“特异功能”,在默认的情况下属于关闭的状态,当元素满足某些条件后,该“特异功能”被激活
所谓“激活特异功能”,就是该元素创建了BFC(又称:开启了BFC)
- 元素开启BFC后,其子元素不再产生margin塌陷问题
- 元素开启BFC后,自己不会被其他浮动元素所覆盖
- 元素开启BFC后,就算其子元素浮动,元素自身高度也不会塌陷
如何开启BFC
- 根元素
- 浮动元素
- 绝对定位、固定定位的元素
- 行内块元素
- 表格单元格:table、thead、tbody、tfoot、th、td、tr、caption
- overflow的值不为visible的元素
- 伸缩项目
- 多列容器
- column-span为all的元素(即使该元素没有包裹在多列容器中)
- display的值,设置为flow-root