常用的六种布局方式:Flex、Gid、column-count、float、position、表格布局HTML系列:人人都懂的HTML基础知识-HTML教程(1) HTML元素大全(1) HTML
顺晟科技
2021-06-30 17:10:59
296
文档流指的是元素排版布局过程中,元素会默认自动从左往右,从上往下的流式排列方式布局,文档流可以分为定位流、浮动流、普通流三种
BFC(Block formatting context)直译为"块级格式化上下文"。是用于布局块级盒子的一块渲染区域,它是一个独立的渲染区域、容器,简单的可以理解把BFC理解为是css页面渲染的一种机制、有一套渲染规则,规定内部元素如何布局。也可以理解为这个独立的区域与外部之间的元素互不影响。
BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。
注意:一个BFC的范围包含创建该上下文元素的所有子元素,但不包括创建了新BFC的子元素的内部元素。即一个元素不能同时存在于两个BFC中。因为如果一个元素能够同时处于两个BFC中,那么就意味着这个元素能与两个BFC中的元素发生作用,就违反了BFC的隔离作用。
<html>)
float
不是 none
)position
为 absolute
或 fixed
)display
为 inline-block
)display
为 table-cell
,HTML表格单元格默认为该值)display
为 table-caption
,HTML表格标题默认为该值)display
为 table、
table-row
、 table-row-group、
table-header-group、
table-footer-group
(分别是HTML table、row、tbody、thead、tfoot 的默认属性)或 inline-table
)overflow
计算值(Computed)不为 visible
的块元素display
值为 flow-root
的元素contain
值为 layout
、content
或 paint 的元素display
为 flex
或 inline-flex
元素的直接子元素)display
为 grid
或 inline-grid
元素的直接子元素)column-count
或 column-width
不为 auto,包括
column-count
为 1
)column-span
为 all
的元素始终会创建一个新的BFC,即使该元素没有包裹在一个多列容器中(标准变更,Chrome bug)。除了BFC 还有IFC、GFC、FFC原理都类似都有自己的布局规则。
采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。这种布局就是上面说的FFC。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。
容器属性
六个属性分别为:flex-direction,flex-wrap,flex-flow,justify-content,align-items,align-content
项目属性
六个属性分别为:order,flex-grow,flex-shrink,flex-basis,flex,align-self
将网页划分成一个个网格,定义行、列可以任意组合不同的网格,做出各种各样的布局,这种布局就是上面说的GFC。
Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。 Flex 布局是轴线布局,只能指定"项目"针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可以看作是二维布局。
css 中的px是一个相对逻辑单位,相对的是设备像素比(DPR) ,其中DPR 可以通过window.devicePixelRatio,简单的可以理解为使用多少物理像素绘制单个CSS逻辑像素。
window.devicePixelRatio DPR = 物理像素(设备像素) / 逻辑像素(css像素/设备独立像素) dips
从iphone4开始,推出了所谓的Retina屏(一种新型高分辨率屏),分辨率提高了一倍,变成640*960,但屏幕尺寸却没变化,这就意味着同样大小的屏幕上,像素却多了一倍,这时,1个CSS像素是等于4个物理像素的。
对于桌面设备,一个css逻辑像素通常就等同于物理像素,不用考虑缩放问题。
备注:dpr 涉及到的相关概念比较多可自行查找如css像素、设备像素比dpr等
屏幕分辨率是指纵横向上的像素点数,单位是px。显示分辨率就是屏幕上显示的像素个数,分辨率160×128的意思是水平方向含有像素数为160个,垂直方向像素数128个。屏幕尺寸一样的情况下,分辨率越高,显示效果就越精细和细腻。
1024*600 (常见8、9寸电脑使用)
1024*768 (常见10.4、12.1、14.1、15寸电脑使用)
1280*1024 (常见14.1、15寸电脑使用)
1280*800 (常见10.8、12.1、15.4寸电脑使用)
1280*854 (不常见)
1366*768 (常见15.2寸电脑使用)(主流)
1440*1050 (常见15、16.1寸电脑使用)
1440*900 (苹果17寸电脑)
1600 * 900 (非主流)
1600*1200 (常见15、16.1寸电脑使用)
1600*1024 (不常见)
1680*1050 (常见15.4、20寸电脑使见)
1920*1080 (主流)
1920*1200 (常见20寸电脑使见)
1 @media (min-width: 1024px){ 2 body{font-size: 18px} 3 } /*>=1024的设备*/ 4 5 @media (min-width: 1100px) { 6 body{font-size: 20px} 7 } /*>=1100的设备*/ 8 9 @media (min-width: 1280px) { 10 body{font-size: 22px;} 11 } /*>=1280的设备*/ 12 13 @media (min-width: 1366px) { 14 body{font-size: 24px;} 15 } 16 17 @media (min-width: 1440px) { 18 body{font-size: 25px !important;} 19 } 20 21 @media (min-width: 1680px) { 22 body{font-size: 28px;} 23 } 24 25 @media (min-width: 1920px) { 26 body{font-size: 33px;} 27 }
@media (min-width: 1024px){ body{font-size: 18px} } /*>=1024的设备*/ @media (min-width: 1100px) { body{font-size: 20px} } /*>=1100的设备*/ @media (min-width: 1280px) { body{font-size: 22px;} } /*>=1280的设备*/ @media (min-width: 1366px) { body{font-size: 24px;} } @media (min-width: 1440px) { body{font-size: 25px !important;} } @media (min-width: 1680px) { body{font-size: 28px;} } @media (min-width: 1920px) { body{font-size: 33px;} }
09
2022-11
19
2022-10
22
2022-09
22
2022-09
20
2022-09
15
2022-09