div和css:行内元素和块元素的水平和垂直居中

行内元素:

水平居中:text-align:center

ul水平居中:加
display:table;
margin:0 auto;
此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。

垂直居中:line-height:父元素的height

块元素:

水平居中:

①margin:0 auto

例:
.father{
    width:200px;
    height:200px;
    background-color:red;
    }
.son{
    width:100px;
    height:100px;
    background-color:black;
    margin:0 auto;
    }

0指上下外边距为0,auto指左右外边距自适应,此时水平居中。(该方法不适用于垂直居中) 这种方法不适用于通屏,即若子元素溢出,则在父元素中不居中

②position:relative/absolute/fixed

relative:相对定位,保留初始位置(即不浮动)

特点:1.不影响元素本身特性
      2.不使元素脱离文档流(不浮动)
      3.可以不设定偏移量,此时位置不会发生变化
      4.该元素是相对于自己本身位置的偏移量。

absolute:绝对定位,不保留初始位置

特点:1.元素完全脱离文档流(浮动)
      2.使内联元素支持宽和高
      3.让块标签内容撑开宽高
      4.相对父元素偏移,且逐层查找,直到document,若父元素没有position:relative属性,则继续向上找,直到document,即相对于浏览器左上角。
      5.提升层级,即盖在其他未用该属性的元素上,或者在他之前使用该属性的元素上。(优先级可以用z-index设置,值越大,优先级越高,但是若父元素,即使用position:relative的元素也被覆盖,则没有用)

fixed:相对于视窗定位,即不管滑轮向下还是向上拉,该元素位置始终不变。(IE6以下不兼容)

<style>
.test{
	width:200px;
	height:100px;
	background-color:yellow;
}
.test1{
	width:200px;
	height:100px;
	background-color:green;
	position:relative;
	left:50%;
	margin-left:-100px; <!--子元素的height的一半-->
}
.test2{
	width:200px;
	height:100px;
	background-color:blue;
}
.test3{
	width:200px;
	height:100px;
	background-color:red;
}
</style>
</head>

<body>
<div class="test">
</div>
<div class="test1">
</div>
<div class="test2">
</div>
<div class="test3">
</div>

(插不了图片。。。我口述吧。。) 就是保留了图片本来的的位置,而图片移动到了屏幕中央的位置。 若将上面test2的position改为absolute,则浮动,图片2本来的位置被test3覆盖 用上面position,left,margin-left三个属性也可以使div水平居中(垂直居中将left改为top即可) 这种方法适用于通屏,即若子元素溢出,则在父元素中也居中。

优点:不用知道父元素的width

垂直居中:

①设置父元素的padding

缺点:需要知道父元素的width值

②上述水平方法第二个,将left改为top

③绝对居中(即水平,垂直都居中)

实现方法:父元素相对定位,子元素绝对定位,在子元素中添加属性

{
    margin:auto;
    top:0;
    left:0;
    bottom:0;
    right:0;
}

该方法不浮动,但也存在不通屏的问题。

时间: 2024-10-02 09:04:59

div和css:行内元素和块元素的水平和垂直居中的相关文章

css 行内元素 块元素 替换元素 非替换元素 以及这些元素的width height margin padding 特性

一.各种元素的width height margin padding 特性(具体css元素的分来参看二) 1.块级元素 width. height. margin的四个方向. padding的四个方向都正常显示,遵循标准的css盒模型.例如:div 2.行内替换元素 width. height. margin的四个方向. padding的四个方向都正常显示,遵循标准的css盒模型. 例如:img 2.行内非替换元素(重点) width. height不起作用,用line-height来控制高度.

css的内联元素,块元素详情

块元素(block element) * address - 地址 * blockquote - 块引用 * center - 举中对齐块 * dir - 目录列表 * div - 常用块级容易,也是css layout的主要标签 * dl - 定义列表 * fieldset - form控制组 * form - 交互表单 * h1 - 大标题 * h2 - 副标题 * h3 - 3级标题 * h4 - 4级标题 * h5 - 5级标题 * h6 - 6级标题 * hr - 水平分隔线 * is

css基础 display:block 行内标签转为块级标签

礼悟:    公恒学思合行悟,尊师重道存感恩.叶见寻根三返一,江河湖海同一体.          虚怀若谷良心主,愿行无悔给最苦.读书锻炼养身心,诚劝且行且珍惜.              ide:visual studio 2017             browser:Chrome                     os:win7 代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8&qu

行内块元素 、块元素、内联元素关于text-align:center margin:0 auto的比较

行内元素.块元素的区别 1.行内元素会在一条直线上水平排列 2.行内元素width.height设置无效,padding和margin的上下无效 2.块元素各占一行,垂直排列,相当于末尾有<br>标签 3.块元素可以包含行内元素和块元素,但是行内元素是不能包含块元素的 下面开始上图 首先选择使用一个block  和inline,并给定边框border,方便查看 对于inline设置text-align:center是无效的 后面发现设置宽度 高度也是无效的 因此引入了行内块元素,分别设置宽度,

HTML 基础 内联与块元素

什么是块级元素和内联元素 block(块)元素的特点: ①总是在新行上开始: ②高度,行高以及外边距和内边距都可控制: ③宽度100%,除非设定一个宽度. ④它可以填写内联元素和其他块元素 inline元素的特点: ①和其他元素都在一行上: ②高,宽度不可改变: ③宽度就是它的文字或图片的宽度,不可改变 ④内联元素只能容纳文本或者其他内联元素 其中css的display属性能修改块元素与内联元素 ◎ blockquote - 块引用 ◎ center - 举中对齐块 ◎ ul - 非排序列表(无

html中内联元素和块元素的区别、用法以及联系

昨天用asp.net的BulletedList做一个导航栏,最终该控件形成的html代码是ul列表和a超链接,具体代码如下: <ul id="BulletedList1" style="width:300px;"> <li><a href="javascript:__doPostBack('BulletedList1','0')">课程更新</a></li><li><a

HTML中为何P标签内不可包含块元素?

起因:在做项目时发现原本在DW中无误的代码到了MyEclipse6.0里面却提示N多错误,甚是诧异.于是究其原因,发现块级元素P内是不能嵌套DIV的. 深究:我们先来认识in-line内联元素和block-line块元素,因为HTML里几乎所有元素都属于内联元素或者块元素中的一种. in-line这个词有很多种解释:内嵌.内联.行内.线级等,但是,它们都是表示相同的意思,在这里我们选择习惯的叫法–内联. 先看下面的例子你就能明白两者的差别: <p>测试一下块元素与<span>内联元

!important覆写css行内样式

<div class="block"> <span style="font-weight: bold; color: red;">Hello World</span> </div> 众所周知,行内式最高级的, 如果我们要想使用导入式的来取代这个行内式的最高级,该如何写呢,用!important 如: .block span{ font-weight: normal !important; color: #000 !im

行内标签 和 块级标签

块级标签 div    ………………块级标签 h1~h6   ………………标题 ul (内含多个li) ol (内含多个li) dl (内含一个dt    多个dd)………………列表 table(内含tr  th  td)……………………表格 p…………………………………………段落 br…………………………………………换行 form……………………………………表单 行级标签 span a……………………超链接 img……………………图片 var……………………变量,显示斜体 strong…………

行内标签与块级标签的转换

display : inline-block  块级标签转换为行内标签 display : block  行内标签转换为块级标签 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div style="dis