博客
关于我
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/

你可能感兴趣的文章
opencv面向对象设计初探
查看>>
OpenCV(1)读写图像
查看>>
OpenCV:不规则形状区域中每种颜色的像素数?
查看>>
OpenCV:概念、历史、应用场景示例、核心模块、安装配置
查看>>
OpenDaylight融合OpenStack架构分析
查看>>
OpenERP ORM 对象方法列表
查看>>
openEuler Summit 2022 成功举行,开启全场景创新新时代
查看>>
openEuler 正式开放:推动计算多样化时代的到来
查看>>
OpenEuler23.03欧拉系统_安装瀚高数据库企业版6.0.4_openeuler切换root用户_su:拒绝权限_passwd: 鉴定令牌操作错误---国产瀚高数据库工作笔记001
查看>>
OpenEuler23.03欧拉系统_安装瀚高数据库企业版6.0.4_踩坑_安装以后系统无法联网_启动ens33网卡---国产瀚高数据库工作笔记002
查看>>
OpenFeign 入门与实战
查看>>
OpenFeign源码学习
查看>>
OpenFeign组件声明式服务调用
查看>>
openfeign远程调用不起作用解决_使用Spring Boot的spring.factories进行注入---SpringCloud Alibaba_若依微服务框架改造---工作笔记007
查看>>
openfire开发(四)消息拦截器
查看>>
openfire源码解读之将cache和session对象移入redis以提升性能
查看>>
Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)
查看>>
OpenForest 开源项目安装与使用指南
查看>>
OpenGL glBlendFunc() 设置颜色混合 透明度叠加计算
查看>>
opengl 深度详解,多重采样时,如何在OpenGL纹理中解析深度值?
查看>>