【CSS】 元素块与文字的各种居中解决方案

元素块的居中

  首先有这样一个200*200px的元素块在界面内。

  

  元素块的水平居中:

  如果想要让其水平居中,则有三种方法:

    第一种是知道屏幕的长宽,则根据计算,(屏幕宽X-元素块宽Y)/ 2的结果是元素块向右偏移的长度,不过这种方法很蠢笨,通过外边距调整元素的位置只有在调整元素间的间距时才有作用;

    至于第二种,就很合适了,我们不必知道屏幕的宽度,只需要设置外边距: 

.box { width: 200px; height: 200px; background: #333; margin-left: auto; margin-right: auto;}

    也可以这样写:

.box { width: 200px; height: 200px; background: #333; margin: 0 auto;}

    就可以了!效果:

    第三种方法是运用定位的方法,先把元素块绝对定位,然后左移50%的屏幕宽度,再用负边距向右移元素块50%的宽度。

.box { width: 200px; height: 200px; background: #333; position: absolute; left: 50%; margin-left: -100px;}

    效果:

  很显然,第二种方法是最简单也是最适用的方法,第三种更适用于元素块在屏幕中的水平垂直居中。



  元素块的垂直居中:

  关于元素块的垂直居中,有两种实现的方法。第一种同样是计算坐标偏移的方法,一般不采用。另一种就是运用绝对定位和外边距的方法来垂直居中乃至水平垂直居中。

  垂直居中:

.box { width: 200px; height: 200px; background: #333; position: absolute; top: 50%; margin-top: -100px;}

  元素块的水平垂直居中:

.box { width: 200px; height: 200px; background: #333; position: absolute; top: 50%; left: 50%; margin-top: -100px; margin-left: -100px;}

  其实很简单,就是水平居中和垂直居中的结合罢了!



  元素块相对于父元素块的居中:

  比如下面的".content"块是".box"块的子元素块:

.box { width: 500px; height: 400px; border: 1px solid;}
.content {width: 100px; height: 100px; background: #333;}

  content的水平居中:

.box { width: 500px; height: 400px; border: 1px solid;}
.content {width: 100px; height: 100px; background: #333; margin: 0 auto;}

  content的垂直居中:

.box { width: 500px; height: 400px; border: 1px solid; position: relative;}
.content {width: 100px; height: 100px; background: #333; position: absolute; top: 50%; margin-top: -50px;}

  这里要注意:当子元素设置为绝对定位absolute时,如果想对于父元素定位,需要父元素设置"position:relative",即父元素设置为相对定位,负责子元素将相对于body定位。

  content的水平垂直居中: 

.box { width: 500px; height: 400px; border: 1px solid; position: relative;}
.content {width: 100px; height: 100px; background: #333; position: absolute; top: 50%; left: 50%; margin-top: -50px; margin-left: -50px;}



文字的居中

  文字的水平居中:

  现在是这种情况,元素块中有一行文字,需要将其水平居中。

  很简单,只需要设置一个属性:

.box { width: 400px; height: 300px; border: 1px solid;}
.text {text-Align: center;}

  文字的垂直居中:

  也很简单,只需要设置一个属性,将其行高和元素框高相等: 

.box { width: 400px; height: 300px; border: 1px solid;}
.text {line-height: 300px;}

  文字的水平垂直居中:

.box { width: 400px; height: 300px; border: 1px solid; margin: 100px auto;}
.text {text-Align: center; line-height: 300px;}



  如果是多行文字怎么办,很简单,在文字外套一个层级,可以为"div",也可以讲inline元素设置为"display: block",先将文字垂直居中,再讲嵌套的文字块在父元素块中居中,这就将其分解为两个问题,解决起来很容易。

  以上就是居中的几个解决方法,其他一些问题在遇到后会慢慢的整理汇总出来,以供记录和参考。

  最后附上html代码。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 5         <link type="text/css" rel="stylesheet" href="resource/css//temp.css" />
 6         <title>CSS各种居中</title>
 7         <link rel="icon" href="favicon.ico" type="images/x-icon" />
 8     </head>
 9
10     <body>
11         <div class="box">
12             <div class="content"></div>
13             <h3 class="text">这是块中的一行文字!</h3>
14         </div>
15     </body>
16 </html>



  总结:

    扎实的掌握基础知识,再将其灵学活用,这是解决各种问题的唯一方法。

时间: 2024-10-16 02:38:56

【CSS】 元素块与文字的各种居中解决方案的相关文章

CSS 行高与文字竖直居中

1.

css元素居中实现方法

关于css元素居中,查阅资料和实验有以下几种方法: 水平居中 1.最简单的在父元素中加入 text-align:center .这条语句不用关心子元素是否有固定的尺寸大小. 但只能对图片,按钮,文字等行内元素(display为inline或inline-block等)进行水平居中. 但要说明的是在IE6.7这两个奇葩的浏览器中,它是能对任何元素进行水平居中的. 2.子元素宽度确定,可以使用 margin:0 auto 或者 margin-left:auto ; margin-right:auto

CSS元素居中

html中元素分为行内元素和块级元素.采用margin或者float来使元素居中,是比较常见的方法. margin:0 auto只能用于块级元素,不能使行内元素居中. 参考知乎上为什么「margin:auto」可以让块级元素水平居中?,margin:0 auto,是左右外边距自适应,水平方向的 auto,其计算值取决于可用空间(剩余空间).元素本身为块级元素,那么水平方向可用空间的距离为其包含盒的宽度(宽度=盒总宽度-(padding-left+padding-right+border-left

css基础 行内元素 块级元素

1.行内元素(内联元素 inlineElement) 特点:不占据一行,无法设置宽高及行高,其宽度随着内容增加,高度随字体大小而改变,margin只对左右起作用,上下无效. 常见有: a - 锚点,b - 粗体(不推荐),br - 换行,em - 强调,font - 字体设定(不推荐),i - 斜体,img - 图片,input - 输入框,label - 表格标签, select - 项目选择,small - 小字体文本,span - 常用内联容器,定义文本内区块,strike - 中划线,s

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中块级元素和行内元素

文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流. 每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动. 内联元素也不会独占一行. 几乎所有元素(包括块级,内联和列表元素)均可生成子行, 用于摆放子元素. 有三种情况将使得元素脱离文档流而存在,分别是浮动,绝对定位, 固定定位. 但是在IE中浮动元素也存在于文档流中(还让我觉得这样很合理><). 浮动元素不占任何正常文档流空间,而浮动元素的定位还是基于正常的文档流

学习总结:CSS(一)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型

.displayTal { width: 100%; font-size: 13px } .displayTal1 { width: 30%; height: 30px; font-size: 13px; color: #009933 } .displayTal2 { width: 40%; height: 30px; font-size: 13px; color: #009933 } .displayTal3 { width: 30%; height: 30px; font-size: 13p

css如何实现让文字沉到元素的底部

css如何实现让文字沉到元素的底部:在实际应用中可能有这样的需求,那就是将指定的文本沉降到元素的底部.下面就通过代码实例介绍以下如何实现此效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <ti

css 元素居中方法

目前知道有两种方法 方法一:主要适用于元素未设定高度的情况下. 直接上代码 html: 1 <div class="nav-content"> 2 <ul ng-click="navItem($event)" ng-model="navType"> 3 <li id="nav_msglist"> 4 <a href="#/">消息列表</a> 5