一、水平居中设置——行内元素

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

二、水平居中设置

——定宽块状元素

#当被设置元素为块状元素时,使用text-align:center就不起作用,此时分两种情况:定宽块状元素与不定宽块状元素。

#定宽块状元素:块状元素的宽度width为固定值

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

#块级元素的居中有两个条件,1:必须有宽度,2:左右margin为auto

margin:10px 5px; 表示对象与父容器的上下距离值都是10px,与左右的距离值都是5px。
margin:0 auto; 表示上下的距离值是0,而左右就是自动适应,也就是我们常说的自动居中。
margin:auto; 表示上下左右都自动适应。

未设置前:

设置后

——不定宽块状元素

不定宽块状元素:块状元素的宽度width不固定。

不定宽度的块状元素有三种方法居中:

1、加入table标签

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

2、设置display:line方法:与第一种类似,显示类型设为行内元素,使用text-align:center来实现居中效果。

3、设置position:relative和left:50%:利用相对定位的方式,将元素向左偏移50%,即达到居中的目的。

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

三、垂直居中

两种情况:父元素高度确定的单行文本,父元素高度确定的多行文本。

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

#父元素高度确定的多行文本

方法一:

使用插入table(包括tbody、tr、td)标签,同时设置竖直居中的属性vertical-align:middle,在父元素设置此样式时,会对inline-block类型的子元素都有用

方法二:

在chrom、firefox、IE8以上的浏览器可以设置块级元素的display:table-tell(设置为表格单元),激活vertical-align属性,本方法兼容性较差

四、隐藏改变display类型

当元素(不论之前是什么类型元素,display:none除外)设置以下两个句子之一:

1、position:absolute

2、float:left或float:right

元素的display显示类型就会自动变为以display:inline-block(块状元素)的方式显示,然后就可以设置元素的width和height,且默认宽度不占满父元素

HTML+CSS基础学习笔记(8)的更多相关文章

  1. HTML&CSS基础学习笔记—创建列表

    创建一张表格 很多时候我们需要在网页上展示一些数据,使用表格可以很好的来展示数据. 在HTML中<table>标签定义 表格. <table> </table> 添 ...

  2. HTML&CSS基础学习笔记1.16-单元格间距和表格主体

    上一篇讲html学习笔记,讲过了合并单元格,那么今天就来介绍下如何控制单元格的间距,以及表格主体的相关知识. 单元格间距 在上个知识点的显示结果中你可能发现了,单元格与单元格之间有一小段空白.这是由& ...

  3. HTML&CSS基础学习笔记1.32-选择器是什么

    选择器是什么 选择器是CSS样式为了定位页面上的任意元素的一种方法. 选择器主要分为:元素标签选择器.通用选择器.类选择器.ID选择器.属性选择器.组合选择器.伪类选择器.伪元素选择器. 先做个了解, ...

  4. HTML&CSS基础学习笔记1.31-像素和相对长度

    像素和相对长度 之前的笔记中,我们提到过用属性width.height来设置图片的尺寸,它们的单元都是”px(像素)”.长度单位总结一下,目前比较常用到px(像素).em.% 百分比,要注意其实这三种 ...

  5. CSS基础学习笔记

    一. CSS介绍 1. CSS概述:CSS(Cascading Style Sheets)指层叠样式表,极大提高了工作效率. 2. 基础语法: 属性大于1个之后,属性之间用分号隔开 如果大于1个单词, ...

  6. HTML&CSS基础学习笔记1.33-元素选择器

    元素选择器 最常见的 CSS 选择器是元素选择器.换句话说,文档的元素就是最基本的选择器: p { text-indent:10px; color:blue; } 什么情况下使用元素选择器,一般我们这 ...

  7. HTML&CSS基础学习笔记1.30-颜色的表达

    颜色的表述 在网页中的颜色设置是非常重要,CSS的属性有字体颜色(color).背景颜色(background-color).边框颜色(border)等,设置颜色的方法也有很多种: 1.英文命令颜色 ...

  8. HTML&CSS基础学习笔记1.29-灵活地使用样式

    灵活的使用样式 使用样式的感觉很棒吧! 刚我们使用的内联样式是给具体的标签加上样式,如果有多个标签的时候,我们用内联样式给标签加样式的时候就需要一个个的加过来,这样就很麻烦. 而如果我们使用内部样式表 ...

  9. HTML&CSS基础学习笔记1.28-给网页添加一个css样式

    CSS是什么? 当HTML配合CSS一起使用时,我们发现页面变得好看了很多.那么CSS到底是什么呢? CSS指层叠样式表 (Cascading Style Sheets),它主要是用于定义HTML标签 ...

  10. HTML&CSS基础学习笔记1.26-input重置表单

    重置表单 <input>的[type]属性值为"button"的时候表示一个普通的按钮,相当于一个<button>标签. <input>的[ty ...

随机推荐

  1. 【Xamarin挖墙脚系列:对设备/模拟器的查看调试监听】

    原文:[Xamarin挖墙脚系列:对设备/模拟器的查看调试监听] 有时候我们需要查看模拟器中的文件,比如进行了文件IO操作,sqlite数据库的操作等.我们想查看内容,这时候,如何将内容导出来?由于A ...

  2. JVM Monitoring: JMX or SNMP?

    JVM Monitoring: JMX or SNMP? By daniel on Feb 23, 2007 Since JavaTM SE 5.0, the JRE provides a means ...

  3. bzoj1835

    最近状态太差,先补补结题报告吧这是一道好题设f[i,j]表示到第j个位置建了i个基站且第j个位置建了基站的最小花费不难得到f[i,j]=min(f[i-1,k]+cost[k+1,j])+c[j];首 ...

  4. BZOJ_4196_[NOI2015]_软件包管理器_(树链剖分)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=4196 给出一棵树,树上点权为0或1.u权值为1的条件是从根节点到u路径上的所有点权值都为1.u ...

  5. Navigation Drawer(导航抽屉)

    目录(?)[-] 创建一个导航抽屉 创建抽屉布局 初始化抽屉列表 处理导航项选点击事件 监听导航抽屉打开和关闭事件 点击应用图标来打开和关闭导航抽屉 创建一个导航抽屉 导航抽屉是一个位于屏幕左侧边缘用 ...

  6. http一问一答

    1.用户浏览网站时,发起请求和得到响应的基本过程是什么样的?为什么用户键入一个网址往往会发起多个请求? 首先制作一个非常简单的网页,它的内容只有一行: <html><body> ...

  7. ASP.NET生命周期详解 [转]

    最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等 ...

  8. win7IIS错误修改路径最全的

    http://blog.csdn.net/testcs_dn/article/details/8726480 http://www.myexception.cn/asp-dotnet/1341569. ...

  9. codeigniter nginx rewrite规则配置【转】

    转自:http://www.nginx.cn/1134.html nginx如何配置才能支持codeigniter ? 1. codeigniter的url美化去掉index.php   1 2 3 ...

  10. 《linux程序设计》--读书笔记--第十四章信号量、共享内存和消息队列

    信号量:用于管理对资源的访问: 共享内存:用于在程序之间高效的共享数据: 消息队列:在程序之间传递数据的一种简单方法: 一.信号量 临界代码:需要确保只有一个进程或者一个执行线程可以进入这个临界代码并 ...