Day15_CSS3课堂笔记

Day15 CSS3 笔记

1 回顾

多列布局
设置给多列容器:
column-count
column-width
columns
column-gap
column-rule-style
column-rule-color
column-rule-width
column-rule

设置给子元素
column-span: none/all
-webkit-column-break-inside: auto/avoid
-webkit-column-break-before: auto/avoid/always
-webkit-column-break-after: auto/avoid/always

伸缩盒布局:

设置给伸缩容器的样式:
display: flex/inline-flex
flex-direction: row/row-reverse/column/column-revers
flex-wrap: nowrap/wrap/wrap-reverse
flex-flow
justify-content: flex-start/flex-end/center/space-between/space-around/space-evenly
align-items: stretch/flex-start/flex-end/center/baseline
align-content: stretch/flex-start/flex-end/center/space-between/space-around/space-evenly

设置给伸缩项目的样式:
flex-basis  伸缩项目在主轴上的长度
flex-grow   扩展比率
flex-shrink	收缩比率
flex		flex:1 1 0;    flex: 0 0 auto;
order
align-self: auto/stretch/flex-start/flex-end/center/baseline

2 媒体查询和响应式布局

2.1 视口 viewport

① 什么是视口
1. 视口就是页面的可视区域
2. 视口是根元素的初始包含块
② 移动端视口和PC端视口
1. PC端,视口大小用户可以调整,受到浏览器窗口大小以及开发者调试工具的影响
2. 移动端,视口大小用户不可以调整(分屏操作,手机横评,会影响视口大小)
③ 完美视口设置

什么是完美视口:

设备屏幕宽度 = 视口宽度
1. 默认,PC端就是完美视口,不需要设置
2. 默认,移动端视口大小会被缩放为 980px,与设备屏幕宽度不等

如何设置为完美视口:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

2.2 媒体查询基本语法

① 媒体类型
all			所有的类型,默认值
screen		屏幕,包括手机、电脑、电视机、屏幕...
print		打印机
speech      辅助阅读设备
/* 单独设置屏幕样式 */
@media screen {
    h1 {
        font-size: 100px;
    }

}

/* 单独设置打印机样式 */
@media print {
    h1 {
        border: 5px solid red;
        font-size: 400px;
    }
}
② 媒体特性
width				视口宽度
max-width			最大视口宽度
min-width			最小视口宽度
device-width		屏幕宽度
max-device-width	最大屏幕宽度
min-device-width	最小屏幕宽度
 /* 视口宽度小于等于 600 */
@media (max-width: 600px) {
    h1 {
        color: orange;
    }
    body {
        background-color: green;
    }
}

/* 视口宽度大于等于 1000px */
@media (min-width: 1000px) {
    h1 {
        color: red;
    }
    body {
        background-color: blue;
    }
}
③ 运算符
and			并且
,			或者
not			排除,只能用于媒体类型
only		只有,只能用于媒体类型
/* 视口宽度是 600~800 */
@media (min-width: 600px) and (max-width: 800px) {
    h1 {
        color: orange;
    }
    body {
        background-color: green;
    }
}

/* 视口宽度小于等于500 或者 视口宽度大于等于 1000 */
@media (max-width: 500px),(min-width: 1000px) {
    h1 {
        color: deeppink;
    }
    body {
        background-color: cyan;
    }
}

2.3 媒体查询在 CSS 中使用

① 第一种使用方式: 媒体查询与其他CSS代码写在一起
1. 媒体查询中的样式不会提高样式的优先级,只有选择器才有优先级
2. 把媒体查询语句写在后面,生效的时候能够覆盖前面的
② 第二种使用方式: @media 配合 link 标签
 <link rel="stylesheet" href="screen.css" media="screen">
 <link rel="stylesheet" href="print.css" media="print">

2.4 响应式布局

① 阈值(断点)
方式一:
768px
992px
1200px

方式二:
800px
1024px
② 移动优先方案(媒体查询的设置)
1. 把所有类型都有的样式和最小屏幕的样式写在媒体查询以外
2. 媒体查询 使用 min-width ,从小到大,层层覆盖
.container {
    width: 100%;
    height: 400px;
    background-color: cyan;
}

/* 大于等于 768px  768~992 */
@media (min-width: 768px) {
    .container {
        margin: 0 auto;
        width: 750px;
    }
}

/* 大于等于 992px 992~1200*/
@media (min-width: 992px) {
    .container {
        width: 970px;
    }
}

/* 大于等于 1200 */
@media (min-width: 1200px) {
    .container {
        width: 1170px;
    }
}

3 BFC

3.1 什么是 BFC

Block Formatting Context 简称 BFC,中文翻译为 块级格式上下文

① W3C 中对 BFC 的定义

Floats, absolutely positioned elements, block containers (such as inline-blocks, table-cells, and table-captions) that are not block boxes, and block boxes with ‘overflow’ other than ‘visible’ (except when that value has been propagated to the viewport) establish new block formatting contexts for their contents.

译文:

浮动、绝对定位元素、不是块盒子的块容器(如inline-blocks、table-cells和table-captions),以及overflow属性的值除visible以外的块盒(除非该值已传播到视口),将为其内容建立新的块格式化上下文。

② MDN 上对 BFC 的定义

A block formatting context is a part of a visual CSS rendering of a web page. It’s the region in which the layout of block boxes occurs and in which floats interact with other elements.

译文:

块格式化上下文(Block Formatting Context,BFC) 是Web页面的可视CSS渲染的一部分,是块盒子的布局过程发生的区域,也是浮动元素与其他元素交互的区域。

③ 到底什么是 BFC

首先,BFC 的意思是 Block Formatting Context ,即块级格式上下文。 然后,当元素满足了某些条件,我们认为该元素创建了 BFC。 创建了 BFC 的元素我们可以把他看做是一个独立的容器,容器内的元素不论如何布局都不会影响到外面。

3.2 创建 BFC 的方式

  • 根元素。
  • 浮动元素。
  • 绝对定位或固定定位的元素。
  • 行内块元素。
  • 表格单元格(th、td)、表格行(tr)、表格标题(caption)、table、thead、tbody、tfoot。
  • overflow 的值不为 visible 的块元素。
  • 伸缩项目。
  • 多列容器。
  • column-spanall 的元素始终会创建一个新的BFC,即使该元素没有包裹在一个多列容器中。

3.3 创建 BFC 可以解决的问题

① 清除子元素浮动的影响

给浮动元素的父元素创建 BFC,清除掉子元素浮动的影响。

② 解决外边距塌陷

给父元素创建 BFC,第一个和最后一个子元素的外边距不会塌陷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人生本该如此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值