首頁 >web前端 >css教學 >css強制換行和超出隱藏實作單行和多行(程式碼實例)

css強制換行和超出隱藏實作單行和多行(程式碼實例)

云罗郡主
云罗郡主轉載
2018-10-20 14:36:232386瀏覽

這篇文章帶給大家的內容是關於css強制換行和超出隱藏實現單行和多行(程式碼實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

<!--
white-space: normal|pre|nowrap|pre-wrap|pre-line|inherit;
white-space:设置如何处理元素内的空白;
word-break: normal|break-all|keep-all;
word-break:用来标明怎么样进行单词内的断句
word-wrap: normal|break-word;
word-wrap:用来标明是否允许浏览器在单词内进行断句,这是为了防止当一个字符串太长而找不到它的自然断句点时产生溢出现象。
text-overflow:ellipsis; 让多出的内容以省略号...来表达。但是这个属性主要用于IE等浏览器,Opera浏览器用-o-text-overflow:ellipsis; 而Firefox浏览器没有这个功能,多出的内容只能隐藏起来。
display:-webkit-box; //将对象作为弹性伸缩盒子模型显示。
-webkit-box-orient:vertical; //从上到下垂直排列子元素(设置伸缩盒子的子元素排列方式)
-webkit-line-clamp:2; //这个属性不是css的规范属性,需要组合上面两个属性,表示显示的行数。
/* autoprefixer: off */ /* autoprefixer: on */解决-webkit-box-orient:vertical
-->

通俗點的解釋:

 word-break:break-all;只對英文起作用,以字母作為換行依據 
 word-wrap:break-word; 只對英文起作用,以單字作為換行依據 
white-space:pre-wrap; 只對中文起作用,強制換行 
 white-space:nowrap; 強制不換行,都起作用 
 white-space :nowrap; overflow:hidden; text-overflow:ellipsis;不換行,超出部分隱藏且以省略號形式出現(部分瀏覽器支援)

案例:案例裡面有註釋,

<!DOCTYPE html>

<html lang="en">



<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

    <style>
        body {
            width: 100%;
            margin: 200px 20%;
        }
        .indexBox1 {
            width: 60%;
            height: 100px;
            font-size: 14px;
            color: #ffffff;
            display: flex;
            justify-content: space-around;
        }
          /* 单行 */
        .indexBox1 .box_text1 {
            width: 100px;
            height: 98px;
            background: gray;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            /* word-break: normal;
             word-wrap: none; */
        }
        /* 多行 */
        .indexBox1 .box_text4 {
            width: 100px;
            height: 98px;
            background: black;
            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-box-orient: vertical;
            /* Firefox */
            display: -moz-box;
            /* autoprefixer: off */
            -moz-box-orient: vertical;
            /* autoprefixer: on */
            /* Safari、Opera 以及 Chrome */
            display: -webkit-box;
            /* autoprefixer: off */
            /*解决下面这个属性不显示*/
            -webkit-box-orient: vertical;
            /* autoprefixer: on */
            /*解决上面这个属性不显示*/
            /* 控制在第几行多出的内容省略 */
            -webkit-line-clamp: 5;

        }
        .indexBox1 .box_text5 {
            /* word-break: normal|break-all|keep-all; */
            word-break: break-all;
        }
        .indexBox1 .box_text6 {
            /* word-wrap: normal|break-word; */
            word-wrap: break-word;
        }
    </style>
</head>

<body>
    <!-- 单行 -->
    <p class="indexBox1">
        <p class="box_text1">
            我们来自同一个世界,我们都有自己的梦想,我们都不曾放弃 我们来自同一个世界,我们都有自己的梦想,我们都不曾放弃 我们来自同一个世界,我们都有自己的梦想,我们都不曾放弃
        </p>
        <p class="box_text1">
            we are come from a world,we have us dream,wo never give up us deram;
        </p>
        <p class="box_text1">
            we are come from a world,we have us dream,wo never give up us deram;
        </p>
    </p>
    <!-- 多行 -->
    <p class="indexBox1">
        <p class="box_text4">
            我们来自同一个世界,我们都有自己的梦想,我们都不曾放弃 我们来自同一个世界,我们都有自己的梦想,我们都不曾放弃 我们来自同一个世界,我们都有自己的梦想,我们都不曾放弃
        </p>
        <p class="box_text4 box_text5">
            we are come from a world,we have us dream,wo never give up us deram;
        </p>
        <p class="box_text4 box_text6">
            we are come from a world,we have us dream,wo never give up us deram;
        </p>
    </p>
</body>

</html>
  1. -webkit-line-clamp用來限制在一個區塊元素顯示的文字的行數。為了實現該效果,它需要組合其他的WebKit屬性。常見結合屬性:

  2. display:-webkit-box;必須結合的屬性,將物件作為彈性伸縮盒子模型顯示。

  3. -webkit-box-orient必須結合的屬性,設定或檢索伸縮盒物件的子元素的排列方式。

但是為了相容於火狐瀏覽器,用css與js結合的方法來實現;

下面是實現的過程:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<style>
    .content {
        margin: 0 auto;
        width: 400px;
        line-height: 25px;
        margin-top: 100px;
        position: relative;
        height:auto;
        overflow: auto;
    }
    .contentHide{
        height: 50px;
        overflow:hidden;
    }
    .contentHide::after {
        content: "...";
        position: absolute;
        bottom: 0;
        right: 0;
        padding-left: 20px;
        /* background: -webkit-linear-gradient(left, transparent, #fff 55%);
        background: -o-linear-gradient(right, transparent, #fff 55%);
        background: -moz-linear-gradient(right, transparent, #fff 55%); */
        background: linear-gradient(to right, transparent, #fff 55%);
    }
</style>

<body>
    <p class="content">我们来自同一个世界我们都有自己的梦想,我们不曾放弃;我们不曾放弃;我们不曾放弃;我们不曾放弃;我们不曾放弃;我们不曾放弃</p>
    <p class="content">我们来自同一个世界我们都有自己的梦想,我们不曾放弃;我们不曾放弃</p>
    <p class="content">我们来自同一个世界我们都有自己的梦想,我们不曾放弃</p>
</body>
<script>
    let ct=document.querySelectorAll(".content");
    for(let i=0;i<ct.length;i++){  //通过高度判断是否要添加超出隐藏的class名
        if(ct[i].offsetHeight>50)
        {
            ct[i].classList.add(&#39;contentHide&#39;);
        }
    }
    
</script>
</html>

以上就是對css強制換行和超出隱藏實作單行和多行(程式碼實例)的全部介紹,如果您想了解更多有關CSS視訊教學,請關注PHP中文網。


以上是css強制換行和超出隱藏實作單行和多行(程式碼實例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除