纯CSS实现文字一行居中,多行左对齐的方法
其实这种需求还是蛮常见的,主要用于产品列表页面,用于产品图片下面,显示产品的名称。
想要实现的效果为:
未知文字长度,当文字长度小于盒子宽度,也就是一行时,文字居中。
当文字长度大于盒子的宽度,会自动换行,成为多行文字,此时文字左对齐。

1、利用行内元素:
我首先想到了这个思路,思路如下:
让P居中,P中的文字左对齐:(P的父级text-align:center; P自身text-align:left;)
P的宽度根据文字的宽度伸缩,当文字为一行时,则P的宽度小于LI的宽度,居中;则看上去文字是局中的。
当大于一行时,P的宽度和LI的宽度是一致的,文字就居左了。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文字测试</title>
<style type="text/css">
*{margin: ;padding: ;list-style: none;font-weight: normal;font-style: normal;}
body {font-size:16px;font-family:tahoma,Helvetica, Arial,"\5FAE\8F6F\96C5\9ED1";line-height: 1.5;}
ul {width: 500px; margin: 100px auto; overflow: hidden;}
/*代码开始*/
li {
/* 这些都不重要 */
float: left;width: 150px;background: #fafafa;height: 50px;margin-right: 10px;
/* 重点 */
text-align: center;
}
/* 重点 */ display: inline-block使P的宽度根据文字的宽度伸缩
p {
display: inline-block;
text-align: left;
}
</style>
</head>
<body>
<ul>
<li><p>一行文字</p></li>
<li><p>这里是比较长的两行文字</p></li>
</ul>
</body>
</html>
效果:
2、利用万能的表格
HTML代码和解决方法一是一致的。主要是利用了table的牛逼特性:未知宽度的table 也是可以左右对齐的!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文字测试</title>
<style type="text/css">
*{margin: ;padding: ;list-style: none;font-weight: normal;font-style: normal;}
body {font-size:16px;font-family:tahoma,Helvetica, Arial,"\5FAE\8F6F\96C5\9ED1";line-height: 1.5;}
ul {width: 500px; margin: 100px auto; overflow: hidden;}
/*代码开始*/
li {
/* 这些都不重要 */
float: left;width: 150px;background: #fafafa;height: 50px;margin-right: 10px;
}
/* 重点 */
p {
display: table;
margin: 0 auto;
}
</style>
</head>
<body>
<ul>
<li><p>一行文字</p></li>
<li><p>这里是比较长的两行文字</p></li>
</ul>
</body>
</html>
纯CSS实现文字一行居中,多行左对齐的方法的更多相关文章
- css 多出一行或多行后显示...的方法
一行超出显示... .mui-ellipsis { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } 两行超出的显示. ...
- 纯css控制文字2行显示多余部分隐藏
在编写页面的时候,经常遇到一些地方的文字显示1行,多余的文字隐藏,这样显示1行的很好控制: css代码如下: white-space: nowrap; overflow: hidden; text-o ...
- css设置文字上下居中,一行文字居中,两行或多行文字同样居中。
转:https://www.cnblogs.com/handsomeBoys/p/6599062.html HTML: <div class="book-detail-store-it ...
- css让文字,字母折行
加上如下的CSS设置,就是设定好宽度width,然后设置合适的word-wrap和word-break属性: ul li{ width: 100px; word-wrap: break-word; w ...
- 【css】纯css实现文字循环滚动效果
不用js来实现. html: <div class="box"> <p class="animate"> 文字滚动的内容文字滚动的内容文 ...
- CSS图片文字同行居中
img{ display:inline-block; vertical-align:middle; }
- 纯css用图片代替checkbox和radio,无js实现方法
html <ul id="is_offical_post_links"> <li> <label> <input type="c ...
- CSS设置table下tbody滚动条与thead对齐的方法
<style>table tbody {display:block;height:195px;overflow-y:scroll;} table thead, tbody tr {disp ...
- 多textView设置布局居中显示文本左对齐或右对齐
在textView上层套一个ViewGroup即可,如 <?xml version="1.0" encoding="utf-8"?> <Rel ...
随机推荐
- hdu 1829(继续扩展并查集)
A Bug's Life Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- 安卓屏幕旋转时,禁止Activity重新加载
安卓设备旋转屏幕时,Activity默认会重新加载,如果是要读取大量数据的场景,那等待的时间比较长,这一点不可接受,所以要想办法禁止Activity自动重新加载. 方法如下在AndroidManife ...
- AC日记——[SCOI2009]游戏 bzoj 1025
[SCOI2009]游戏 思路: 和为n的几个数最小公倍数有多少种. dp即可: 代码: #include <bits/stdc++.h> using namespace std; #de ...
- AC日记——明明的烦恼 bzoj 1005
1005 思路: prufer编码+组合数: 代码: #include <bits/stdc++.h> using namespace std; #define maxn 1005 #de ...
- docker容器中文件的上传与下载
原文地址:传送门 1.上传文件 docker cp [OPTIONS] SRC_PATH|- CONTAINER:DEST_PATH [OPTIONS]:保持源目标中的链接,例: docker cp ...
- prerender.io 搜索引擎优化 部署成windows服务 实现开机自动开启服务
一 prerender.io服务端部署 参考官方网站的部署步骤: $ git clone https://github.com/prerender/prerender.git $ cd preren ...
- ajax在提交url时候遇到的编码问题
//escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值.比如"春节"的返回结果是%u6625%u8282,escape()不对"+& ...
- CentOS为中文显示
[sudo yum groupinstall chinese-support]命令即可安装
- Django CRM查询 XXX.object.filter() 常用用法总结
__gt 大于 __gte 大于等于 User.objects.filter(age__gt=10) // 查询年龄大于10岁的用户 User.objects.filter(age__gte=10) ...
- ShiroFilterFactoryBean分析
创建核心Filter 同其他框架一样,都有个切入点,这个核心Filter就是拦截所有请求的. 通过web.xml中配置的Filer进入,执行init方法获取这个instance,调用下面的create ...