行内元素和块状元素的水平居中设置
我在上一篇文章里总结了一下块状元素、内联元素、内联-块状元素的区别
三者的一个重要区别在于是不是独占一行以及能不能设置宽高、内外间距。
在这个前提下,我们应该怎么设置元素在水平方向上的居中呢?
行内元素的水平居中设置
行内元素的水平居中有一个通用的方法:通过在其父元素中设置text-align:center来实现:
我们给出一个html文件,写入一个div块状元素,包裹一个span内联元素:
<!DOCTYPE html>
<html>
<head><title>前端试题</title><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="前端试题.css">
</head>
<body><div><span>这是一个行内元素</span></div>
</body>
</html>
父元素div的css样式当中,用text-align: center;对span元素进行“水平居中”设置。
为了突出显示父元素div和子元素span之间的位置关系,设置一下背景颜色:
div{width: 200px;height: 100px;background-color: yellow;text-align: center;
}
span{background-color: orange;
}
块状元素的水平居中
块状元素又分为定宽块状元素 (width值固定)和不定宽块状元素(width的值不固定)。两种情况下有不同的设置水平居中方式:
- 定宽块状元素:
设置margin:0 auto,即设置一下上下margin值,然后把左右margin值设置为auto,让这个块状元素的左右margin值自动调整。
<!DOCTYPE html>
<html>
<head><title>前端试题</title><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="前端试题.css">
</head>
<body><div><div id="son">这是一个定宽块状元素</div></div>
</body>
</html>
div{width: 200px;height: 100px;background-color: yellow;text-align: center;
}
#son{margin: 0 auto;width: 160px;height: 30px;background-color: orange;
}
注意:只有同时满足“定宽”和“块状元素”两个条件,才能使用“margin:0 auto”来设置水平居中!
- 不定宽块状元素
不定宽块状元素的水平居中设置有几种方法:
- 使用table标签:
table法当中,我们在html代码当中让块状元素div成为table->td里的内容,然后再设置table的margin为0 auto,对table进行水平居中设置。
<!DOCTYPE html>
<html>
<head><title>前端试题</title><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="前端试题.css">
</head>
<body><table><tr><td><div id="son">这是一个不定宽块状元素,table标签具有长度自适应性,因此可以看成一个定宽块状元素。然后再利用定宽块状元素的margin:0 auto方法实现水平居中</div></td></tr></table>
</body>
</html>
table{border:1px solid red;margin: 0 auto;
}
#son{background-color: orange;
}
2. 将该元素设置为行内元素,然后再用行内元素的水平居中方法(该元素display:inline;该元素的父元素text-align:center):
<!DOCTYPE html>
<html>
<head><title>前端试题</title><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="前端试题.css">
</head>
<body><div><div id="son">这是一个不定宽块状元素</div></div>
</body>
</html>
div{width: 300px;height: 100px;background-color: blue;text-align: center;/*父元素设置text-align:center*/
}
#son{display: inline;/*子元素设置display:inline;*/height: 30px;background-color: orange;
}
3. 设置该元素的父元素左浮动,并进行定位(float:left;position:relative;left:50%?,
该元素利用相对定位的方式,相对于其自身向左移动50%。
(position:relative; left:-50%)
<!DOCTYPE html>
<html>
<head><title>前端试题</title><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="前端试题.css">
</head>
<body><div id="father"><div id="son">这是一个不定宽块状元素,父元素和子元素的宽度都不确定,用float浮动,再用position定位。</div></div>
</body>
</html>
#father{/*让父元素浮动起来,再定位到body的中线位置*/float: left;position: relative;left: 50%;
}
#son{/*相对于父元素定位,定位到向左偏移50%的位置*/position: relative;left: -50%;background-color: orange;
}
4、将父元素设置为弹性盒(display:flex;)目标元素设置外边距自动(margin:auto)
<!DOCTYPE html>
<html>
<head><title>前端试题</title><meta charset="utf-8"><link rel="stylesheet" type="text/css" href="前端试题.css">
</head>
<body><div id="father"><div id="son">这是一个不定宽块状元素,父元素设置为弹性盒来实现水平居中</div></div>
</body>
</html>
#father{display: flex;background-color: yellow;
}
#son{margin: 10px auto;height: 50px;background-color: orange;
}
行内元素和块状元素的水平居中设置相关推荐
- 0428专题:行内元素与块状元素
专题: 行内元素与块状元素 块状元素 |-特点:默认占一整行.可以自动换行.可以设置大小 |-常见块状元素:div.li 行内元素 |-特点:不能设置宽高,内容有多大,我就有多大: 对m ...
- HTML的display属性将行内元素、块状元素、行内块状元素互相转换以及三者的区别
1.行内元素 查看演示 (1)设置宽高无效 (2)对margin仅设置左右方向有效,上下无效:padding设置上下左右都有效,即会撑大空间 (3)不会自动进行换行 <html> < ...
- HTML行内元素、块状元素和行内块状元素的区分
HTML 5 的常用元素分类 HTML可以将元素分类方式分为行内元素.块状元素和行内块状元素三种,这三者是可以互相转换的,通过display属性可以实现互相转换 (1)display:inline;转 ...
- 行内元素、块状元素和行内块元素
1关于行内元素和块状元素的说明 根据CSS规范的规定,每一个网页元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div元素,它的默认display属 ...
- HTML行内元素、块状元素、行内块状元素介绍
目录 1.行内元素: 1.1.行内元素特征: 1.2.常见行内块元素: 2.块状元素 : 2.1.块状元素特征: 2.2.常见块状元素 : 3.行内块状元素: 3.1.行内块状元素特征: 3.2.常见 ...
- 行内和块级元素区别?如何让行内元素设置宽高?
行内和块级元素区别: 1.行内元素与块级函数可以相互转换,通过修改display属性值来切换块级元素和行内元素,行内元素display:inline,块级元素display:block. 2.行内元素 ...
- CSS 5 CSS 内联元素 和 块状元素
CSS 文章目录 CSS 5 CSS 内联元素 和 块状元素 5.1 内联元素[inline] 5.2 块级元素[block] 5.3 内联元素与块级元素的区别 5.3.1 内联元素 5.3.2 块状 ...
- html 块状元素转换,块状元素与内联元素的转换
在布局页面的时候,HTML标签分成两种,块状元素和内联元素(我们平时用到的标签div和p就是块状元素,链接标签a就是内联元素).它们是很重要的两个概念,既然说到概念就先看看块状元素和内联元素的定义,在 ...
- 怎么修改html行内样式表,原生JS获取及设置CSS样式-1.行内样式
面试中,应该会经常被问到样式的写法以及如何使用原生JS获取及操作样式的问题吧,让我给大家总结一下~ HTML中样式的写法不外乎以下四种方式 行内样式 假装有内容 head内部样式 div { widt ...
最新文章
- SAP QM初阶之维护检验计划时可以不用事先创建好检验特性主数据
- 10个月产品演化之路-快速试错,快速反应,探索产品成功之道
- python直方图均衡化代码_基于matlab的直方图均衡化代码
- Android ----中文Api 百度地图
- EasyUI 在aspx页面显示高度不正常解决办法
- IntelliJ IDEA 2021.2 正式发布
- SFB 项目经验-82-Active Directory Replication Status
- 十六进制的形式在屏幕中间显示二进制byte类型数据
- SpringBoot+kaptcha生成验证码
- ai png转矢量图_Boxy SVG for Mac(矢量图编辑器)
- vue-cli 打包出来的文件缺少_Vue cli构建 及 项目打包以及出现的问题 (update 2020-05)...
- php 同义词词库,php如何实现同义词替换
- 视频图像格式YUV详解
- 农村三资管理平台app_鑫农三资app下载-鑫农三资app下载安卓版 v1.0.2_手机乐园
- VHDL中的行为描述、数据流(RTL)描述和结构描述
- C++:高斯坐标,大地坐标转经纬度
- 2020年Top 100开发者工具列表汇总
- [数值计算-16]:最小二乘法的求解1 - 一元二次方程解析法求解
- 快速将PDF图片转成PPT
- Ubuntu配置和使用cups打印服务器
热门文章
- Java(商城练习)
- 2017光量子计算机,2017年5月,世界首台光量子计算机在( )诞生
- 三星android文件传输,将数据从三星快速传输到三星的6种方法
- OpenSSL密码库算法笔记——第5.3.1章 椭圆曲线点群的算法集
- python空间复杂度是指_第16话:算法的空间复杂度
- 【数据结构】时间复杂度和空间复杂度
- 新的勒索软件在第一个月就有十名受害者
- 数组的下标为什么从0开始
- win10在Anaconda3下面安装caffe框架(CPU)Python2.7从入门到放弃
- 「Python条件结构」if…elif…else身份证长度校验