1.水平居中

1.1 水平居中设置-行内元素

如果被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的。

1.2 水平居中设置-定宽块状元素

当被设置元素为 块状元素 时用 text-align:center 就不起作用了,这时也分两种情况:定宽块状元素和不定宽块状元素。

这一小节我们先来讲一讲定宽块状元素。(定宽块状元素:块状元素的宽度width为固定值。)

满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的。

<style>
div{border:1px solid red;/*为了显示居中效果明显为 div 设置了边框*/width:200px;/*定宽*/margin:20px auto;/* margin-left 与 margin-right 设置为 auto */
}
</style>
<body><div>我是定宽块状元素,哈哈,我要水平居中显示。</div>
</body>

1.3 水平居中总结-不定宽块状元素方法

在实际工作中我们会遇到需要为“不定宽度的块状元素”设置居中,比如网页上的分页导航,因为分页的数量是不确定的,所以我们不能通过设置宽度来限制它的弹性。(不定宽块状元素:块状元素的宽度width不固定。)

不定宽度的块状元素有三种方法居中(这三种方法目前使用的都很多):

  1. 加入 table 标签
  2. 设置 display: inline 方法:与第一种类似,显示类型设为 行内元素,进行不定宽元素的属性设置
  3. 设置 position:relative 和 left:50%:利用 相对定位 的方式,将元素向左偏移 50% ,即达到居中的目的

1.3.1加入 table 标签

利用table标签的长度自适应性---即不定义其长度也不默认父元素body的长度(table其长度根据其内文本长度决定),因此可以看做一个定宽度块元素,然后再利用定宽度块状居中的margin的方法,使其水平居中。

第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 <tbody>、<tr>、<td> )。

第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)。

<style>
table{margin:0 auto;
}
</style>
<div ><table><tr><td>  设置我所在的div容器水平居中  </td></tr></table>
</div>

1.3.2 设置 display: inline 方法

改变块级元素的 display 为 inline 类型(设置为 行内元素 显示),然后使用 text-align:center 来实现居中效果。

1.3.3 设置 position:relative 和 left:50%:

通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50%来实现水平居中。

我们可以这样理解:假想ul层的父层(即下面例子中的div层)中间有条平分线将ul层的父层(div层)平均分为两份,ul层的css代码是将ul层的最左端与ul层的父层(div层)的平分线对齐;而li层的css代码则是将li层的平分线与ul层的最左端(也是div层的平分线)对齐,从而实现li层的居中。

2.垂直居中

2.1 垂直居中-父元素高度确定的单行文本

父元素高度确定的单行文本的竖直居中的方法是通过设置父元素的 height 和 line-height 高度一致来实现的。(height: 该元素的高度,line-height: 顾名思义,行高(行间距),指在文本中,行与行之间的 基线间的距离 )。

line-height 与 font-size 的计算值之差,在 CSS 中成为“行间距”。分为两半,分别加到一个文本行内容的顶部和底部。

这种文字行高与块高一致带来了一个弊端:当文字内容的长度大于块的宽时,就有内容脱离了块。

<style>
.container{height:100px;line-height:100px;background:#999;
}
</style>
<div class="container">hi,imooc!
</div>

2.2垂直居中-父元素高度确定的多行文本

父元素高度确定的多行文本、图片等的竖直居中的方法有两种:

方法一:使用插入 table  (包括tbody、tr、td)标签,同时设置 vertical-align:middle。

css 中有一个用于竖直居中的属性 vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用。

table td{height:500px;background:#ccc}<body>
<table><tbody><tr><td class="wrap">
<div><p>看我是否可以居中。</p>
</div>
</td></tr></tbody></table>
</body>

方法二:在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell(设置为表格单元显示),激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式, 兼容性比较差。


<div class="container"><div><p>看我是否可以居中。</p><p>看我是否可以居中。</p><p>看我是否可以居中。</p></div>
</div><style>
.container{height:300px;background:#ccc;display:table-cell;/*IE8以上及Chrome、Firefox*/vertical-align:middle;/*IE8以上及Chrome、Firefox*/
}
</style>

3. 隐性改变display类型

有一个有趣的现象就是当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:

1. position : absolute

2. float : left 或 float:right

简单来说,只要html代码中出现以上两句之一,元素的display显示类型就会自动变为以 display:inline-block(块状元素)的方式显示,当然就可以设置元素的 width 和 height 了,且默认宽度不占满父元素。

如下面的代码,小伙伴们都知道 a 标签是 行内元素 ,所以设置它的 width 是 没有效果的,但是设置为 position:absolute 以后,就可以了。

<span style="color:#14191e"><span style="color:#14191e"><div class="container"><a href="#" title="">进入课程请单击这里</a>
</div></span></span>

css代码

<span style="color:#14191e"><span style="color:#14191e"><style>
.container a{<span style="color:#b22222">position:absolute;</span>width:200px;background:#ccc;
}
</style></span></span>

初学css-样式设置(居中)相关推荐

  1. CSS样式设置语法全解,样式优先级、值和单位、字体、文本、块级元素,行内元素,替换元素、非替换元素、display、float、position、table、li、光标、边距边框、轮廓、颜色背景

    全栈工程师开发手册 (作者:栾鹏) 一个demo学会css css选择器全解 css操作语法全解 CSS样式设置语法全解: 样式优先级 1. !important标记的样式 > 内联样式(sty ...

  2. FLEX里的CSS样式设置教材

    FLEX3中应用 CSS完全详解手册! 编辑完这个FLEX下的CSS说明后,我基本已经兵临崩溃边缘了.在些天在AIRIA下了不少好东西,今天终于有空,也发一个比较不错的东西给大家,相信 都比较需要这个 ...

  3. 使用CSS样式设置文本超出2行显示为省略号

    设置文本超出2行显示为省略号 在设计前端页面中,我们经常会遇到文本太长导致超出规定区域的情况. 我们只需要在文本中设置以下样式即可解决该问题: html页面: <div class=" ...

  4. php 给字符中间添加间距,html中的字符间距怎么设置?css样式设置文本对齐方式总结...

    我们经常用的html字符间距总是不好设置,html的文本对齐方式也不会设置,现在这篇文章就来帮助大家了,这里有关于html 字符间距的调整,还有文本的对齐方式设置,现在让我们来看看这篇文章吧 首先我们 ...

  5. html取消自动换行怎么设置,css样式设置不自动换行而是隐藏的方法

    css样式里面如何设置超出部分不换行而是自动隐藏呢?请看下面的例子: .xg ul li p { height: 36px; line-height: 18px; overflow: hidden; ...

  6. 在PHP中给表格加上css样式,表格CSS样式设置 给table表格设置CSS样式表

    表格table tr td CSS花色设置 给table表格设置CSS花式表 在一个网页中多处运用了表格table标签,这个时候给指定的表格对象设置装备摆设款式仿照照旧概略经由CSS发展管束配置. 着 ...

  7. css知识笔记(五)——css样式设置小技巧

    水平居中设置-行内元素 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的.如下代码: html代码: <body><d ...

  8. uniapp怎么引入css_uniapp - css样式设置scoped

    1.App.vue(样式层级高)定义样式就可以覆盖子组件或者父组件,无论有没有设置scoped关键字 export default { onLaunch: function() { console.l ...

  9. html ifrme 选择器,html中iframe/css样式设置,id,class选择器的使用规则等学习2019.9.2 08:00...

    实例 html> 外部样式 I Love PHP中文网!from 赵桂福 运行实例 » 点击 "运行实例" 按钮查看在线实例 2.内部样式:用 标签 实例 html> ...

  10. css样式高居中,CSS居中的几种方式

    本文主要总结几种常见的CSS居中方式,下面我准备分为三个方向来写,分别是水平居中,垂直居中,水平垂直居中. 水平居中 1.inline元素如何实现水平居中?(text-align:center) 2. ...

最新文章

  1. 不要把OKR用成 KPI,OKR和KPI有什么区别?
  2. java poi3.15 ppt,Apache POI PPT - 演示( Presentation)
  3. oracle不维护java_宣布 Java 8 停止维护后,Oracle 又毙掉了 JavaOne!
  4. 有助于建立使用者对套件的信任 GitHub释出管理服务
  5. mongodb数组字段prefix匹配返回
  6. Effective Java~42. Lambda 优于匿名类
  7. python神经网络实例_Python编程实现的简单神经网络算法示例
  8. javascript 性能 · 平稳退化、渐进增强
  9. 使用Spring Boot开发者工具进行自动重启和页面自动刷新
  10. C++之指针探究(十六):typedef结合函数指针
  11. ubuntu linux网关不通,Ubuntu 8.04不能上网等问题的解决
  12. 没有他的帅气,也要像他那般努力!(转载)
  13. 使用 ffmpeg 从视频文件提取音频
  14. linux shadow文件*,Linux /etc/shadow文件详解
  15. 微信公众账号开发教程(四)自定义菜单(含实例源码)——转自http://www.cnblogs.com/yank/p/3418194.html...
  16. 华南理工计算机就业棒棒,为梦想、为公益,华南理工大学学子为爱发声
  17. CST学习:圆形贴片天线四元阵设计(一)阵元设计
  18. Android5.0录屏
  19. Python爬虫新手进阶版:怎样读取非结构化网页、图像、视频、语音数据
  20. 【数据结构Python描述】优先级队列描述“银行VIP客户插队办理业务”及“被插队客户愤而离去”的模型实现

热门文章

  1. 17.Python中的魔法函数
  2. c语言结构体指针使用方法,C语言结构体指针的使用方法
  3. 一句话让你记住美国的各个州
  4. XJTU2017Robocon少年的总结
  5. 随想杂谈--一个GPIO控制两个按键的方法
  6. ISE中开发XPS microblaze软核与BootLoader功能的实现
  7. http升级为https全过程(通过nginx安装SSL证书)
  8. 详谈高大上的图片加载框架Glide
  9. 常用的电脑使用技巧(肝货二)
  10. 阿里巴巴菜鸟网路技术二面+现场面