昨天项目,一直出现一个无法居中的问题,最后发现竟然是text-align的问题,才发现自己对text-align的理解还是不够透彻,于是在此再举例分析下。

css中的元素一共有三类:块元素、行内块和内联元素。

三者的区别就是:

        块元素可以设置宽高,会独占一行;

        行内块拥有块元素的所有特性,除了无法独占一行;

        内联元素无法设置宽高,不会独占一行。

而text-align的作用就是:可以为文字和内联元素、行内块设置水平居中,即使该文字是在块元素内。

以下是例子:

以下是html代码:

     <div class="wrapper">
<img src="img/2.png"/><br>
<span>这是span内联元素中的文字</span>
<div>这是块元素div中的文字</div>
</div> <ul>
<li class="wrapper">
<span class="span"></span>
<div class="div"></div>
<span class="span2">
我是行内块元素,是有文字的span
</span><br>
<div class="div2">我也是行内块元素,是div</div><br>
<span class="span2"></span><br>
<div class="div2"></div><br>
</li>
</ul>

以下css代码:

       .wrapper {
width: 500px;
border: 1px solid black;
margin: 0 auto;
text-align: center;
}
.span {
display: block;
width: 50px;
height: 50px;
background: #bac;
}
.div {
width: 50px;
height: 50px;
background: hotpink;
}
.span2 {
display: inline-block;
width: 150px;
height: 50px;
background: #bac;
}
.div2 {
display: inline-block;
width: 150px;
height: 50px;
background: hotpink;
}

以下是显示的示例:

所以,当使用text-align时,一定要注意,只能对文字(包括块元素中的文字)、内联元素和行内块进行水平居中,对块是没有用的。

注: 若对脱离文档流(比如position:absolute)的块元素水平居中,可对要求水平居中的块元素使用: left: 50%;  transform: translateX(-50%);(有浏览器兼容性,需全部写上)

关于text-align无法居中的问题的更多相关文章

  1. 关于让input=text,checkbox居中的解决方法

    1.type="text"时一般浏览器与IE6在高度上相差2px,并且内容会显示在左上方.解决办法有两种:1.input框的高度不设置,但要设置padding值 2.不设置padd ...

  2. C# Listview 第一列不能居中

    /********************************************************************** * C# Listview 第一列不能居中 * 说明: ...

  3. css 居中,中央

    在我的技巧里,有4中居中中央的方法: 1.position:absolute; top:50%;left:50%; margin : -x 0 0 -x; 这是绝对定位的方法,通过算法移动,坏处就是必 ...

  4. Flutter 布局(二)- Padding、Align、Center详解

    本文主要介绍Flutter布局中的Padding.Align以及Center控件,详细介绍了其布局行为以及使用场景,并对源码进行了分析. 1. Padding A widget that insets ...

  5. Flutter学习笔记(22)--单个子元素的布局Widget(Container、Padding、Center、Align、FittedBox、Offstage、LimitedBox、OverflowBox、SizedBox)

    如需转载,请注明出处:Flutter学习笔记(22)--单个子元素的布局Widget(Container.Padding.Center.Align.FittedBox.Offstage.Limited ...

  6. __attribute__ ((section(".text")))的测试

    一.测试原因 在学习u-boot的环境变量过程中,看到有如此的代码,现对涉及到的内容进行实验测试. 二.测试目的 1.了解gcc允许对段的属性进行更改的方法. 2.解决”ENV_IS_EMBEDDED ...

  7. Extjs Vbox布局方式,以及align种类,flex,pack属性含义简介

    VBox布局方式,熟悉下一下几个主要属性: 一.align:字符类型,指示组件在容器内的对齐方式.这个是基于容器的左上角来排列的.pack不同,pack是根据容器的最上边来显示的. 1.left(默认 ...

  8. 文字和图片居中的HTML代码怎么写?

    HTML 代码 ,怎么将文本/ 图片居中?这是在W3Cschool的编程问答中前端♌蕾儿提出的问题.网友施主同西否给出了详细的解答. html文字居中和html图片居中方法代码,通过在html中实现文 ...

  9. java_Excel 导出

    package Demo; import java.io.IOException; import java.io.OutputStream; import java.io.PrintWriter; i ...

  10. html狂记

    由于承接一部分站点优化工作,竟无节操地好几天没有喂博客,好了,今天完成交接工作,马上奉上DIV+CSS传统开发的干货一枚,内容绝非原创,仅是收集.学习.消化.总结.吐出... 基本结构标签: < ...

随机推荐

  1. JSP三大指令 /9大内置对象 /Javabean / EL

    一个jsp页面中,可以有0~N个指令的定义! 1. page --> 最复杂:<%@page language="java" info="xxx". ...

  2. Learning LexRank——Graph-based Centrality as Salience in Text Summarization(一)

    (1)What is Sentence Centrality and Centroid-based Summarization ? Extractive summarization works by ...

  3. C#Lambda表达式学习日记

    Lambda表达式只是用更简单的方式来写匿名方法,彻底简化了对.NET委托类型的使用. 现在,如果我们要使用泛型 List<> 的 FindAll() 方法,当你从一个集合去提取子集时,可 ...

  4. 【Java】数据库连接池技术

    JDBC的问题 在程序中,我们经常要建立与数据库的连接,之后再关闭这个连接.我们知道,数据库连接对象的创建是比较消耗系统性能的,这些频繁的操作势必会消耗大量的系统资源.因此我们需要采用更高效的数据库访 ...

  5. 深入了解一下PYTHON中关于SOCKETSERVER的模块-D

    在LINUX上以FORK的方式使用SIMPLEHTTPSERVER. 记得哟,THREADING能在WIN和LINUX上实现,但FORK,不支持WIN的. 除了SIMPLE之外,还有CGI,就不示例啦 ...

  6. Jsp中获得集合List或Set的长度

    首先要引入<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> ...

  7. JavaWeb 文件上传 commons_fileupload方式

    import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadExcept ...

  8. 【 POJ - 3801】Crazy Circuits(有源汇、上下界最小流)

    Description You’ve just built a circuit board for your new robot, and now you need to power it. Your ...

  9. 【 UVALive - 2197】Paint the Roads(上下界费用流)

    Description In a country there are n cities connected by m one way roads. You can paint any of these ...

  10. ftp 匿名访问设置

    为了让ftp可以匿名访问,需要设置/etc/vsftp.conf 的 anonymous_enable=YES. 当然仅仅是这样,还是不可以的,会出现错误: vsftpd: refusing to r ...