CSS样式设置
水平居中
如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center来实现的。如下代码:
html代码:
<body>
  <div class="txtCenter">我是文本,哈哈,我想要在父容器中水平居中显示。</div>
</body>css代码:
<style>
  div.txtCenter{
    text-align:center;
  }
</style>水平居中设置-块状元素
当被设置元素为块状元素时用text-align:center就不起作用了,这时也分两种情况:定宽块状元素和不定宽块状元素。
定宽块状元素
满足定宽和块状两个条件的元素是可以通过设置“左右
margin”值为“auto”来实现居中的。设置div这个块状元素水平居中:
html代码:
<body>
  <div>我是定宽块状元素,哈哈,我要水平居中显示。</div>
</body>css代码:
<style>
div{
    border:1px solid red;/*为了显示居中效果明显为 div 设置了边框*/
    width:500px;/*定宽*/
    margin:20px auto;/* margin-left 与 margin-right 设置为 auto */
}
</style>也可以写成:
margin-left:auto;
margin-right:auto;- 注意:
 元素的“上下 margin” 是可以随意设置的。
水平居中总结-不定宽块状元素方法
在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。
不定宽度的块状元素有三种方法居中(这三种方法目前使用的都比多):
- 加入 table 标签
 1.第一步:为需要设置的居中的元素外面加入一个table标签 ( 包括<tbody>、<tr>、<td>)。
 2.第二步:为这个table设置“左右margin居中”(这个和定宽块状元素的方法一样)。
举例如下:
html代码:
<div>
<table>
  <tbody>
    <tr><td>
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
    </td></tr>
  </tbody>
</table>
</div>css代码:
<style>
table{
    margin:0 auto;
}
ul{list-style:none;margin:0;padding:0;}
li{float:left;display:inline;margin-right:8px;}
</style>- 设置 display:inline方法
改变块级元素的
display为inline类型,然后使用text-align:center来实现居中效果。如下例子:
html代码:
<body>
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
</body>css代码:
<style>
.container{
    text-align:center;
}
.container ul{
    list-style:none;
    margin:0;
    padding:0;
    display:inline;
}
.container li{
    margin-right:8px;
    display:inline;
}
</style>- 注意 
 这种方法相比第一种方法的优势是不用增加无语义标签,简化了标签的嵌套深度,但也存在着一些问题:它将块状元素的- display类型改为- inline,变成了行内元素,所以少了一些功能,比如设定长度值。
- 设置 position:relative和left:50%;
通过给父元素设置 float,然后给父元素设置position:relative和 left:50%,子元素设置position:relative和left:-50%来实现水平居中。
代码如下:
<body>
<div class="container">
    <ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
    </ul>
</div>
</body>css代码:
<style>
.container{
    float:left;
    position:relative;
    left:50%
}
.container ul{
    list-style:none;
    margin:0;
    padding:0;
    position:relative;
    left:-50%;
}
.container li{float:left;display:inline;margin-right:8px;}
</style>这种方法可以保留块状元素仍以display:block的形式显示,优点不添加无语议表标签,不增加嵌套深度,但它的缺点是设置了position:relative,带来了一定的副作用。
这三种方法使用得都非常广泛,各有优缺点,具体选用哪种方法,可以视具体情况而定。
垂直居中
父元素高度确定的单行文本
父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的
height和line-height高度一致来实现的。如下代码:<div class="container">
hi,imooc!
</div>css代码:
<style>
.container{
height:100px;
line-height:100px;
background:#999;
}
</style>父元素高度确定的多行文本、图片、块状元素
竖直居中的方法有两种:
- 方法一:使用插入 table(包括tbody、tr、td)标签,同时设置vertical-align:middle。
 说到竖直居中,css中有一个用于竖直居中的属性vertical-align,但这个样式只有在父元素为td或th时,才会生效。所以又要插入table标签了。下面看一下例子:
 html代码:<body>
 <table><tbody><tr><td class="wrap">
 <div>
 <p>看我是否可以居中。</p>
 <p>看我是否可以居中。</p>
 <p>看我是否可以居中。</p>
 <p>看我是否可以居中。</p>
 <p>看我是否可以居中。</p>
 </div>
 </td></tr></tbody></table>
 </body>css代码: table td{height:500px;background:#ccc}因为 td标签默认情况下就默认设置了vertical-align为middle,所以我们不需要显式地设置了。
- 方法二:在 chrome、firefox及IE8以上的浏览器下可以设置块级元素的display为table-cell,激活vertical-align属性,但注意 IE6、7 并不支持这个样式。
html代码:
<div class="container">
    <div>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
        <p>看我是否可以居中。</p>
    </div>
</div>css代码:
<style>
.container{
    height:300px;
    background:#ccc;
    display:table-cell;/*IE8以上及Chrome、Firefox*/
    vertical-align:middle;/*IE8以上及Chrome、Firefox*/
}
</style>这种方法的好处是不用添加多余的无意义的标签,但缺点也很明显,它的兼容性不是很好,不兼容 IE6、7。
隐性改变display类型
有一个有趣的现象就是当为元素(不论之前是什么类型元素,
display:none除外)设置以下 2 个句之一:position : absolute
float : left 或 float:right元素会自动变为以
display:inline-block的方式显示,当然就可以设置元素的width和height了且默认宽度不占满父元素。如下面的代码,我们知道
a标签是行内元素,所以设置它的width是 没有效果的,但是设置为position:absolute以后,就可以了。<div class="container">
<a href="#" title="">进入课程请单击这里</a>
</div>css代码
<style>
.container a{
position:absolute;
width:200px;
background:#ccc;
}
</style>
CSS样式设置的更多相关文章
- HTML+CSS样式设置——CSS一学就会
		HTML+CSS样式设置 CSS:(Cascading Style Sheets)层叠样式设置表. 网页的展示效果跟其排版有非常大的关系.排版则主要依靠CSS来设置.调节. 以下说CSS与HTML的联 ... 
- CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景
		全栈工程师开发手册 (作者:栾鹏) 一个demo学会css css选择器全解 css操作语法全解 CSS样式设置语法全解: 样式优先级 1. !important标记的样式 > 内联样式(sty ... 
- 每天一个JavaScript实例-展示设置和获取CSS样式设置
		<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ... 
- TERSUS无代码开发(笔记04)-CSS样式设置
		CSS样式设置 1.常用显示样式 大小尺寸 说明 间距边距 说明 各类颜色 说明 width 宽 margin 外边距 color 颜色 height 高 pad ... 
- 各种CSS样式设置细线边框
		基础知识回顾 : cellspacing:单元格与单元格之间的边距:cellpadding:单元格内的内容与单元格边沿的边距 简单实用的样式,设置所有的单元格为细线效果 <style type= ... 
- 全局css , 样式设置, css 初始化. css ,style ,全局样式, 初始化样式
		全局CSS设置总结 1.清除所有标记的内外边距 html, body, ul, li, ol, dl, dd, dt, p, h1, h2, h3, h4, h5, h6, form, fieldse ... 
- CSS样式设置小技巧
		1.水平居中设置 行内元素居中设置:如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的.代码示例如下: HTML代码 <body&g ... 
- CSS样式设置记录
		在不懂php和wordpress的情况下,需要按照样式内容用php+wordpress+mysql做个网站,网页上有许多样式需要设置,包括颜色字体等要跟要求一致,记录下今天的结果. <div i ... 
- HTML+CSS学习笔记 (15) - css样式设置小技巧
		水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中场景,今天我们就来看看怎么设置水平居中的. 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:c ... 
- vue 单独页面body css 样式设置
		给某个page下template中的第一个div设置如下样式: .body-bg { position: absolute; width: 100%; height: 100%; top:; left ... 
随机推荐
- Rxjava2.0 链式请求异常处理
			使用Rxjava2.0的过程中,难免会遇到链式请求,而链式请求一般都是第一个抛异常,那么后面的请求都是不会走的.现在来讨论一下链式请求的一种异常处理方法.例如: 一个登录-->通过登录返回的to ... 
- 分布式消息系统Jafka入门指南
			分布式消息系统Jafka入门指南 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 一.JafkaMQ简单介绍 JafkaMQ是一个分布式的公布/订阅消息系 ... 
- etymology-F
			forsake [fə'seɪk] vt.放弃:断念. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400 ... 
- hbase  批量插入api
			1.数据格式a.txt: 1363157985066 13726230503 00-FD-07-A4-72-B8:CMCC 120.196.100.82 i02.c.aliimg.com 24 27 ... 
- SSM整合开发流程
			我的spring是3.2,mybatis是3.4 1 引入user libarary,我的jar文件如下 //spring mvc core springMVC\spring-web-.RELEASE ... 
- PHP获得数组的交集与差集
			PHP获得数组的交集与差集 作者:简明现代魔法图书馆 发布时间:-- :: 次阅读 服务器君一共花费了218. ms进行了6次数据库查询,努力地为您提供了提供了这个页面. 数组的交集 array_in ... 
- CCNA2.0笔记_路由相关
			路由器的工作内容 -路由器知道目标地址 -发现到达目标地址的可能的路由 -选择最佳路径(路由表) -维护路由信息 路由的来源 直连路由:直接连到路由器上的网络 -初始化情况下,路由器所知的网络,只有其 ... 
- .net访问Oracle数据库
			使用System.Data.OracleClient访问Oracle数据库时报错 尝试加载 Oracle 客户端库时引发 BadImageFormatException.如果在安装 32 位 Orac ... 
- MapReduce编程实例2
			MapReduce编程实例: MapReduce编程实例(一),详细介绍在集成环境中运行第一个MapReduce程序 WordCount及代码分析 MapReduce编程实例(二),计算学生平均成绩 ... 
- 做过的自定义 View
			做过的自定义 View android view custom 音频条状图 需求 详细设计 具体实现 音频条状图 需求 音频图 最终效果类似于音频图中的条状图 只是效果模拟,并不监听真实的音频 条的宽 ... 
