html布局图解,web前端之布局模型详解
一、css布局模型
在网页中,css可设置元素有三种布局模型:Flow,Float,Layer
1、流动模型(Flow)
概念:流动(Flow)是默认的网页布局模式。也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的。
典型的特征:
第一,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。
第二,在流动模型下,内联元素(行级元素)都会在所处的包含元素内从左到右水平分布显示。
2、浮动模型 (Float)
任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。
float:left;//左浮动
float:right;//右浮动
3、层模型(Layer)
概念:层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,CSS定义了一组定位(positioning)属性来支持层布局模型。
层模型有三种形式:
(1)、绝对定位(position: absolute)
如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口。
如下面代码可以实现div元素相对于浏览器窗口向右移动100px,向下移动50px。
div{
width:200px;
height:200px;
border:2px red solid;
position:absolute;
left:100px;
top:50px;
}
(2)、相对定位(position: relative)
如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置空间保留不动。
参照定位的元素必须是相对定位元素的前辈元素,参照定位的元素必须加入position:relative;,定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。
(3)、固定定位(position: fixed)
fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化(比如网页中常见的广告位),除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。
二、元素居中布局方法
水平居中
1、行级元素
添加元素css样式:text-align:center;
2、块级元素
定宽的块级元素:width:200px;margin:20px auto;
非定宽的块级元素:
(1)、加入 table 标签
利用table标签的长度自适应性---即不定义其长度也不默认父元素body的长度(table其长度根据其内文本长度决定),因此可以看做一个定宽度块元素,然后再利用定宽度块状居中的margin的方法,使其水平居中。
table{
border:1px solid;
margin:0 auto;
}
|
(2)、设置 display: inline 方法
显示类型设为 行内元素,进行不定宽元素的属性设置,然后使用 text-align:center 来实现居中效果。
(3)、设置 position:relative 和 left:50%
利用 相对定位 的方式,将元素向左偏移 50% ,即达到居中的目的
垂直居中
1、父元素高度确定的单行文本
通过设置父元素的 height 和 line-height 高度一致来实现的。(height: 该元素的高度,line-height: 顾名思义,行高(行间距),指在文本中,行与行之间的 基线间的距离 )。
这种文字行高与块高一致带来了一个弊端:当文字内容的长度大于块的宽时,就有内容脱离了块。
2、父元素高度确定的多行文本、图片等的竖直居中
(1)、使用插入 table (包括tbody、tr、td)标签,同时设置 vertical-align:middle。
css 中有一个用于竖直居中的属性 vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用。下面看一下例子:
table td{height:500px;background:#ccc}
看我是否可以居中。 |
因为 td 标签默认情况下就默认设置了 vertical-align 为 middle,所以我们不需要显式地设置了。
html布局图解,web前端之布局模型详解相关推荐
- 图解机器学习算法(6) | 决策树模型详解(机器学习通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...
- web前端技术分享:详解模块化require 和 import的区别
在前端开发中,我们可以使用很多模块化的库来帮助我们更好的实现效果,有一些库的功能类似很多同学就不知道该如何选择,比如require和import,今天小千就给大家介绍一下两者的区别. 一.区别 1.r ...
- web前端-回调函数sort详解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【Web前端】CSS-定位详解
- 图解机器学习算法(13) | 聚类算法详解(机器学习通关指南·完结)
作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/34 本文地址:https://www.showmeai.tech/article-d ...
- CSS 浮动布局放弃float,拥抱flex(详解)
CSS 浮动布局放弃float,拥抱flex(详解) 文章目录 CSS 浮动布局放弃float,拥抱flex(详解) 说明 Flex布局 容器和项目 容器属性 flex-direction属性 fle ...
- Transformer模型详解(图解最完整版)
前言 Transformer由论文<Attention is All You Need>提出,现在是谷歌云TPU推荐的参考模型.论文相关的Tensorflow的代码可以从GitHub获取, ...
- 前端技术之_CSS详解第三天
前端技术之_CSS详解第三天 二.权重问题深入 2.1 同一个标签,携带了多个类名,有冲突: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- Web 实时消息推送详解
title: Web 实时消息推送详解 category: 系统设计 head: meta name: keywords content: 消息推送,短轮询,长轮询,SSE,Websocket,MQT ...
最新文章
- hibernate多个主键
- Win10下MySQL_Workbench连接远程主机MySQL5.7
- 12月26日二周二次【Python基础语法】
- 什么是电子路径用于连接计算机主板上的芯片,计算机的组成部分及功能346.doc...
- php取不到post数据库,安卓post 数据到php 在写入数据库老是不成功, 数据post不到php...
- [转]【HttpServlet】HttpServletResponse接口 案例:完成文件下载
- 计算机音乐绅士教程,教你学唱薛之谦的《绅士》,这个技巧很实用值得收藏!...
- 魅族官宣好消息:魅族16s Pro暮光森林终于要来了
- asp.net core文档下载_推荐一个必备的开源项目 (附下载链接)
- [转载] python中join的使用
- 用python快速开发一个实用的socket服务器
- 快闪视频快影_快闪的12个步骤!
- NMOS与PMOS的区分及使用
- 6种方法轻松将PDF转换为Word文档,办公必备!
- 阻抗,特征阻抗与等效阻抗
- 下载MySQL驱动程序
- 【python】生成随机数字/字母/指定位数的字母+数字的字符串
- 已解决:网易邮箱smtphz.qiye.163.com在阿里云环境发不出邮件的问题
- UVM搭建 ------ 进阶DIY教程
- Django写一个登录注册---001创建项目以及设计数据库
热门文章
- android adb shell杀进程
- Linux的使用和命令的集合
- linux重装出现cannot load file 5555h,技术员教你解决win7系统重装开机提示cannot load file code:5555h的操作方案...
- Godaddy 主机域名的购买、注册和使用
- (python)BMI计算
- WiFi共享精灵,生活好伴侣
- 左移赋值运算符 (<<=)
- C++:char数组初始化
- 获取打印机分辨率_为孩子准备的第一台口袋打印机,喵喵机P2S评测
- Python:教你如何写一个测量网速的小工具