zoukankan      html  css  js  c++  java
  • css实现文字较少时居中,文字较多换行时左对齐

    一、需求分析与使用场景

      具体需求分析:未知文字的长度的时候,当文字的长度小于盒子的宽度的时候,也就是一行可以放的下的时候,文字居中,当文字长度大于盒子宽度的时候,文字要实现自动换行,成为多行文字,此时文字要求左对齐。其实这样的需求在实际开发中也经常遇到,比如淘宝一些购物列表。

    二、实现方法

      1、通过行内样式实现

        

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>css实现文字较少时居中,文字较多换行时左对齐</title>
      <style>
        *{
          margin: 0;
          padding: 0;
        }
        .main{
          width: 300px;
          height: 500px;
          border: 1px solid #000;
          margin: 0 auto;
          margin-top: 20px;
        }
        .wrap{
          width: 135px;
          height: 200px;
          border: 1px solid #f00;
          margin-left: 10px;
          margin-top: 10px;
          float: left;
          box-sizing: border-box;
          overflow: hidden;
          text-align: center;
        }
        .img{
          width: 135px;
          height: 140px;
          background: rgba(0,0,0,0.4);
        }
        .wrap p{
          font-size: 13px;
          display: inline-block;
          text-align: left;
          word-break: break-all;
          padding: 0 5px;
        }
      </style>
    </head>
    <body>
      <div class="main">
        <div class="wrap">
          <div class="img"></div>
          <p>文字文字</p>
        </div>
        <div class="wrap">
          <div class="img"></div>
          <p>文字过多文字过多文字过多文字过多文字过多文字过多</p>
        </div>
        <div class="wrap">
          <div class="img"></div>
          <p>文字过多文字过多文字过多文字过多文字过多文字过多</p>
        </div>
      </div>
    </body>
    </html>

      实现效果如上图所示(需求分析与使用场景示例):

        上面的代码首先在外层包含框wrap中设置 text-algin:center;使得子元素能相对于父元素居中,然后子元素设置 display:inlne-block; 使得行内元素转化为行内块元素,此时     可以给行内块设置 text-algin:left;使得文字在容器中放不下的时候出现换行居左。

      

      2、通过table表格实现

        

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>css实现文字较少时居中,文字较多换行时左对齐</title>
      <style>
        *{
          margin: 0;
          padding: 0;
        }
        .main{
          width: 300px;
          height: 500px;
          border: 1px solid #000;
          margin: 0 auto;
          margin-top: 20px;
        }
        .wrap{
          width: 135px;
          height: 200px;
          border: 1px solid #f00;
          margin-left: 10px;
          margin-top: 10px;
          float: left;
          box-sizing: border-box;
          overflow: hidden;
          /* text-align: center; */
        }
        .img{
          width: 135px;
          height: 140px;
          background: rgba(0,0,0,0.4);
        }
        .wrap p{
          font-size: 13px;
          /* display: inline-block;
          text-align: left;
          word-break: break-all; */
          padding: 0 5px;
          display: table;
          margin: 0 auto;
          word-break: break-all;
        }
      </style>
    </head>
    <body>
      <div class="main">
        <div class="wrap">
          <div class="img"></div>
          <p>文字文字</p>
        </div>
        <div class="wrap">
          <div class="img"></div>
          <p>文字过多文字过多文字过多文字过多文字过多文字过多</p>
        </div>
        <div class="wrap">
          <div class="img"></div>
          <p>文字过多文字过多文字过多文字过多文字过多文字过多</p>
        </div>
      </div>
    </body>
    </html>

    实现效果如上,这段代码是通过给子元素设置display:table来实现;

  • 相关阅读:
    ASP.NET MVC 学习之路由(URL Routing)
    Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
    linux解压zip文件
    /bin/sh^M:解释器错误:没有那个文件或目录
    mysql查看连接情况
    linux编译qt
    没有可用的软件包 xxx,但是它被其它的软件包引用了
    什么是人月
    qt linux 打包
    linux里安装使用svn
  • 原文地址:https://www.cnblogs.com/mzq156416/p/15089981.html
Copyright © 2011-2022 走看看