博客
关于我
CSS网页布局
阅读量:565 次
发布时间:2019-03-09

本文共 1935 字,大约阅读时间需要 6 分钟。

网页布局与CSS学习总结

网页开发是前端开发的核心内容之一,而CSS作为表现标准语言,与HTML结构化语言和JavaScript行为语言共同构成了网页开发的三大标准语言。了解网页布局的基础是掌握前端开发的重要技能之一。

网页布局主要包括三种定位机制:标准文档流、浮动布局和绝对定位。这些机制共同决定了网页内容的显示方式。


1. 标准文档流

标准文档流是网页默认的布局方式,块级元素和行级元素共同构成标准文档流。块级元素从上到下、从左到右依次排列,每个块级元素都占据独立的一行。例如,divullip等标签常用作块级元素。

行级元素可以在同一行内并列显示。例如,spanstrongemimginput等标签作为行级元素。

每个元素都可以看作一个盒子模型,盒子模型由四个部分组成:内容(content)、内边距(padding)、边框(border)和外边距(margin)。盒子数据从外到里依次为:border(边框)、content + padding(内容与内边距)、background-image(背景图片)、background-color(背景颜色)和margin(外边距)。

盒子的尺寸由四个方向的宽度和高度属性决定。例如,border: 1px 2px 3px 4px;表示上边框1个像素,右边框2个像素。如果只设置三个值,默认为上、左右、下;只设置两个,默认为上下和左右;只设置一个,默认四个方向相同。

从三维角度看,盒子模型的层次结构为:外到里依次是bordercontent + paddingbackground-imagebackground-colormargin

元素居中的实现方法有多种。如果需要在水平方向居中,可以通过设置文本对齐为中心(text-align: center;)实现。对于块级元素,可以通过设置margin: Xpx auto;实现水平居中。为了实现垂直居中,可以将父元素的高度和行高设置为相同值(height: 1.5remline-height: 1.5rem;),然后在子元素中设置垂直对齐(vertical-align: middle;)。需要注意的是,块级元素的垂直居中可能在IE6和IE7中存在兼容性问题。


2. 浮动布局

浮动布局是一种常用布局方式,通过设置float属性实现。浮动可以设置为leftrightnone,块级元素并列显示后会从左到右排列。如果某个元素设置了浮动属性,其宽度会根据内容自动适应,而不是占据整行。周围元素会根据浮动元素的宽度产生高度变化。

为了避免浮动带来的布局问题,可以通过设置clear: both;width: 100%; overflow: hidden;来清除浮动带来的影响。


3. 绝对定位

绝对定位是通过position: absolute;实现的,最强的定位方式。绝对定位的元素完全脱离标准文档流,相对位置由leftrighttopbottomz-index决定。绝对定位的元素会相对于最近的定位元素(position: relative;position: absolute;position: fixed;)进行偏移。如果没有相对于的定位元素,绝对定位的元素会相对于HTML根节点进行偏移。

需要注意的是,父元素的高度必须大于绝对定位的子元素,否则子元素会将父元素撑高。


4. 元素居中

在网页设计中,元素居中是一个常见需求。对于行内元素,可以通过设置text-align: center;实现水平居中,同时结合父元素的高度和行高设置垂直居中。例如:

.img-wrapper {    text-align: center;    height: 1.5rem;    line-height: 1.5rem;}.img-wrapper > img {    width: 80%;    vertical-align: middle;}

对于块级元素,如果需要居中,可以将父元素设置为display: flex;,然后在子元素中设置margin: auto;。这种方法在子元素宽高不固定的情况下仍然有效。


5. 其他常用CSS特性

  • 不透明背景色:可以通过设置background: rgba(255,255,255,0.8);实现不透明的背景效果。
  • 位置固定到底部:可以通过设置position: fixed;bottom: 0;实现元素固定在页面底部。

通过合理运用标准文档流、浮动布局和绝对定位,可以实现不同需求的网页布局设计。同时,掌握元素居中和背景效果的设置方法,可以进一步提升网页美观度和用户体验。

转载地址:http://wdfpz.baihongyu.com/

你可能感兴趣的文章
ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
查看>>
ngrok内网穿透可以实现资源共享吗?快解析更加简洁
查看>>
NHibernate学习[1]
查看>>
NHibernate异常:No persister for的解决办法
查看>>
nid修改oracle11gR2数据库名
查看>>
NIFI1.21.0/NIFI1.22.0/NIFI1.24.0/NIFI1.26.0_2024-06-11最新版本安装_采用HTTP方式_搭建集群_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0_java.net.SocketException:_Too many open files 打开的文件太多_实际操作---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
查看>>
NIFI1.21.0_Mysql到Mysql增量CDC同步中_补充_更新时如果目标表中不存在记录就改为插入数据_Postgresql_Hbase也适用---大数据之Nifi工作笔记0059
查看>>
NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
查看>>
NIFI1.21.0_Postgresql和Mysql同时指定库_指定多表_全量同步到Mysql数据库以及Hbase数据库中---大数据之Nifi工作笔记0060
查看>>
NIFI1.21.0最新版本安装_连接phoenix_单机版_Https登录_什么都没改换了最新版本的NIFI可以连接了_气人_实现插入数据到Hbase_实际操作---大数据之Nifi工作笔记0050
查看>>
NIFI1.21.0最新版本安装_配置使用HTTP登录_默认是用HTTPS登录的_Https登录需要输入用户名密码_HTTP不需要---大数据之Nifi工作笔记0051
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增加修改实时同步_使用JsonPath及自定义Python脚本_03---大数据之Nifi工作笔记0055
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_插入修改删除增量数据实时同步_通过分页解决变更记录过大问题_01----大数据之Nifi工作笔记0053
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>