css水平居中总结
前言
看了好多篇帖子,发现没有一个能够直接让新手很快上手使用水平居中布局的,所以在此进行一番总结,也算是我对水平居中布局的一点点积累沉淀,同时也方便初学者们拿来即用。
一、元素分类
1.行内元素
行内元素,也就是内联元素,可以在一行内显示多个。注:元素的高度、宽度、顶部底部边距均不可设置,元素的高度和宽度就是它包含的文字或图片的高度和宽度。
行内元素有这些:
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
当然有些时候可以通过以下代码变成块状元素:
display: block;
2.块状元素
块状元素,霸占一行,别的元素要另起行才可以。注:元素的高度、宽度、顶部底部边距可设置,元素宽度在不设置的情况下,是它本身父容器的100%。
块状元素有这些:
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>
同样的你也可以通过以下代码把块状元素变为行内元素:
display: inline;
3.内联块状元素
内联块状元素,和行内元素相似,都在可以显示在一行上。注:元素的高度、宽度、行高以及顶和底边距都可设置,实用性较强。
内联块状元素有这些:<img>、<input>
可以通过以下代码把其他元素变为内联块状元素:
display: inline-block; 注:inline-block不支持IE6、IE7,使用时需要额外加上*display:inline;*zoom:1;以触发layout。
二、正常元素的居中方法
a.使用左右外边距自适应方法:
width: 200px;
margin: 0 auto; /*使用此方法需要变为块状元素,且需要固定宽度*/
b.使用外边距加定位方法:/*此方法不适用于行内元素,需要变为块状元素或内联块状元素*/
width: 500px;
height: 30px;
position:relative;
margin-left: 50%;
left: -250px; /*250px是元素的宽度除以2得到,且需要进行定位*/
c.父元素设置text-align: center; /*使用此方法需要变为行内元素或内联块状元素*/
d.对于宽度不确定的元素,可以在外层套上一个table标签,然后给table使用margin: 0 auto来居中:/*此方法只适用于块状元素*/
table{
width: 960px;
height: 500px;
border: 1px solid red;
margin: 0 auto;
}
.center{
border: 1px solid blue;
}
HTML代码:
e.对于宽度不确定的元素,给它和父元素进行定位,分别设置left: -50%和left: 50%,然后实现水平居中:/*此方法只适用于块状元素*/
.father{
position:relative;
left:50%;
width: 960px;
height: 300px;
background: yellow;
}
.children{
height: 30px;
background:#ccc;
position:relative;
left:-50%;
}
HTML代码:
<div class="father">
<div class="children">aaaaaaaa</div>
</div>
f.使用css3的flexbox居中,要在父元素中设置display:flex和justify-content: center,此方法适用于所有元素,但是存在IE不兼容的情况,PC页面慎用。
flex使用方法:
display:flex; /*默认为块状元素*/
display:inline-flex; /*变成行内元素*/
居中实例:
.father{
display: flex;
display: -webkit-flex;
justify-content: center;
-webkit-justify-content: center;
}
三、浮动元素的居中方法
浮动元素:即使用float: left|right进行浮动操作后的元素。
1.浮动元素不确定宽度时,使用绝对定位,加入left: 50%和margin-left: -81px。
.children{
text-align: center;
float: left;
height: 30px;
position: absolute;
left: 50%;
margin-left: -81px;
background: #ccc;
}
2.浮动元素固定宽度时,使用相对定位,加入margin-left: 50%和left: -width/2。 /*width/2即固定宽度的一半*/
.children{
width:500px;
height:300px;
float:left;
margin-left:50%;
position:relative;
left:-250px;
background-color:#CCC;
}
内容持续更新中...
如有错误的地方或者更好用的方法,希望大家能在评论区留言指正,让我们共同进步!
css水平居中总结的更多相关文章
- css水平居中那点事
昨晚深夜写了css垂直居中那点事,今晚该写他的兄弟篇:css水平居中那点事了..…^^ 其实本来这两个可以连在一起写,可是为了不要搞混,为了让思路更清晰,最后决定还是分开来些比较好...这样以后也有利 ...
- CSS水平居中
三种情况:1.行内元素(文本.图片等) 给父元素设置text-align:center;来实现 2.定宽块状元素 <style> div{ border:1px solid blue; w ...
- css水平居中,竖直居中技巧(二)
css水平居中,竖直居中技巧(二)===### 1.效果 ### 2.代码#### 2.1.index.html <!DOCTYPE html> <html lang="z ...
- css水平居中,竖直居中技巧(一)
css水平居中,竖直居中技巧(一)===### 1.效果 ### 2.代码#### 2.1.index.html <!DOCTYPE html> <html lang="z ...
- css水平居中的各种方法
说到水平居中,大家可能觉得很简单啊,text-align:center 就OK了. 但是,有时候会发现这样写了也没出效果.原因是什么呢? 请往下看. 水平居中:分为块级元素居中和行元素居中 行内元素 ...
- CSS水平居中/垂直居中的N个方法
我看最近微博流行CSS居中技术,老外码农争相写相关的文章,一篇赛一篇的长啊,我把几篇归纳总结了一下,算是笔记. 孔乙己曾说:"茴香豆的回字有四种写法",万一哪天有个面试官问你:&q ...
- CSS水平居中和垂直居中解决方案
一.CSS 居中 — 水平居中 DIV等标签本身没有定义自己居中的属性,网上很多的方法都是介绍用上级的text-align: center,然后嵌套一层DIV来解决问题. 可是这个方法有时候完全不起作 ...
- CSS 水平居中
一.水平居中:行内元素解决方案 居中元素:文字.链接以及其它行内元素(inline或inline-*类型的元素,如inline-block,inline-table,inline-flex)解决方案: ...
- CSS 水平居中/布局 垂直居中 (月经问题)
水平居中 如果它是一个行内元素 对其父元素使用 text-align:center 即可实现. <p style = " text-align:center; width:300px; ...
- CSS 水平居中与垂直居中
前言 在CSS布局中,水平居中与垂直居中一直是用到比较多的,在本篇中将介绍水平居中.垂直居中的几种方式. 示例 HTML: <div class="parent"> & ...
随机推荐
- iOS-图片png
把图片添加到工程里面:就报了108个警告!!! 然后我发现我添加的图片有很多命名是这样子的: xcode去找图片的时候是按照什么方式找的呢????? 还发现有好几张同名的图片..... ------- ...
- 编码规范系列(一):Eclipse Code Templates设置
从工作开始,经历了几个项目的开发,现在的项目一般都是一个团队共同开发,而每个人都有自己的编码习惯,为了统一格式,项目组在项目开发之前都会制定一系列的规范.俗话说约定优于配置,但是在执行过程中往往发现效 ...
- 解决 DCEF3 在 BeforePopup 事件中打开新窗体的问题
此问题的解决方案从 https://groups.google.com/forum/#!topic/delphichromiumembedded/xzshOr-pjnU 获得. procedure T ...
- 从零开始学android开发-布局中 layout_gravity、gravity、orientation、layout_weight
线性布局中,有 4 个及其重要的参数,直接决定元素的布局和位置,这四个参数是 android:layout_gravity ( 是本元素相对于父元素的重力方向 ) android:gravity (是 ...
- 【Android 应用开发】Android 开发环境下载地址 -- 百度网盘 adt-bundle android-studio sdk adt 下载
19af543b068bdb7f27787c2bc69aba7f Additional Download (32-, 64-bit) Package r10 STL debug info androi ...
- 【转】Dancing Links精确覆盖问题
原文链接:http://sqybi.com/works/dlxcn/ (只转载过来一部分,全文请看原文,感觉讲得很好~)正文 精确覆盖问题 解决精确覆盖问题 舞蹈步骤 效率分析 ...
- 1039. Course List for Student (25)
题目链接:http://www.patest.cn/contests/pat-a-practise/1039 题目: 1039. Course List for Student (25) 时间限制 2 ...
- ResolveClientUrl("~/Styles/Site.cs")%>
区别: <%=ResolveClientUrl("~/Styles/Site.cs")%> 和 <%=ResolveUrl("~/Styles/Site ...
- HOWTO install Oracle 11g on Ubuntu Linux 12.04 (Precise Pangolin) 64bits
安装了Ubuntu 12.04 64bit, 想在上面安装Oracle 11gr2,网上找了好多文档都没成功,最后完全参考了MordicusEtCubitus的文章. 成功安装的关键点:install ...
- 用PC浏览器模拟手机浏览器(一):无扩展版
想浏览手机版,打开对应网址却跳转到PC版?怎么办? 下面咱们来说下在只是安装了浏览器,无需其他安装操作的情况下来怎么用PC浏览器模拟手机浏览器,然后访问手机站点. 浏览器众多,IE系列的咱就不考虑了, ...