網(wǎng)頁(yè)文字豎排的幾種實(shí)現(xiàn)方式

網(wǎng)頁(yè)文字豎排效果截圖

古時(shí)候的書(shū)籍里面文字的書(shū)寫(xiě)方式都是從上到下從右向左書(shū)寫(xiě)的,我們可不可以在網(wǎng)頁(yè)上實(shí)現(xiàn)這種文字排版效果仗阅,雖然現(xiàn)在豎排在網(wǎng)頁(yè)上用的比較的少,但是我們可以在我們自己的個(gè)人網(wǎng)站或者博客介紹頁(yè)面用豎排來(lái)排版,使網(wǎng)頁(yè)樣式看起來(lái)更加的豐富和復(fù)古炉奴!

通過(guò)一些嘗試我找到了如下3中方式在網(wǎng)頁(yè)上豎排文字的方法,各有各的缺點(diǎn)和優(yōu)點(diǎn)克蚂,下面我們就來(lái)看看具體的方法和實(shí)現(xiàn)效果吧闺鲸!

方式1、css屬性float實(shí)現(xiàn)文字豎排

實(shí)現(xiàn)原理:把一短話的每一句放在一個(gè)div中埃叭,設(shè)置div的寬度和要顯示的字體的大小一樣(div的高度=字?jǐn)?shù)×字體大忻小),div就變成了一個(gè)豎條每一行就只能顯示一個(gè)文字,第二個(gè)文字就會(huì)被擠到下一行赤屋,然后把div的float設(shè)置為right向右浮動(dòng)排列立镶。就達(dá)到了一首詩(shī)的豎排顯示。

代碼實(shí)現(xiàn):

 <style>
        *{
          font-family:Georgia;
        }
        #content{
           position:absolute;
           width:1200px;
           height:400px;
           left:50%;
           top:50%;
           margin-top:-300px;
           margin-left:-600px;
           border:1px dashed  #2f96b4;
           padding-top:50px;
           border-radius:20px;
        }
        #contentRemark{
           position:absolute;
           width:1200px;
           height:300px;
           left:50%;
           top:56%;
           margin-left:-600px;
           padding-top:50px;
           text-indent:2em;
           font-size:20px;
           line-height:2em;
        }
        .PoetryName{
            font-size:xx-large;font-weight:bold;line-height:1.5em;width:1.5em; 
            float:right;font-size:36px;padding-top:40px;
            padding-right:20px;
        }
        .PoetryPerson{
            width:1.5em; float:right;line-height:2em;padding-top:70px;
            font-size:18px;
            color:#d3524e;
        }
        .PoetryContent{
            width:1.5em; float:right;line-height:1.5em;padding-top:30px;
            font-size:20px;
        }

        .PoetryContent:hover{
            width:1.5em; float:right;line-height:1.5em;padding-top:30px;
            font-size:20px;
            cursor:pointer;
            color:#d3524e;
        }
</style>

<div id="content">
    <div class="PoetryName">愛(ài)蓮說(shuō)</div>
    <div style="width:1.5em; float:right;"> </div>
    <div class="PoetryPerson">周 敦 頤 </div>
    <div style="width:1.5em; float:right;"> </div>
    <div class="PoetryContent">水陸草木之花 </div>
    <div class="PoetryContent">可愛(ài)者甚蕃 </div>
    <div class="PoetryContent">晉陶淵明獨(dú)愛(ài)菊 </div>
    <div class="PoetryContent">自李唐來(lái) </div>
    <div class="PoetryContent">世人甚愛(ài)牡丹 </div>
    <div class="PoetryContent">予獨(dú)愛(ài)蓮之出淤泥而不染 </div>
    <div class="PoetryContent">濯清漣而不妖 </div>
    <div class="PoetryContent">中通外直 </div>
    <div class="PoetryContent">不蔓不枝 </div>
    <div class="PoetryContent">香遠(yuǎn)益清 </div>
    <div class="PoetryContent"> 亭亭凈植 </div>
    <div class="PoetryContent"> 可遠(yuǎn)觀而不可褻玩焉 </div>
    <div class="PoetryContent">予謂菊花之隱逸者也 </div>
    <div class="PoetryContent">牡丹花之富貴者也 </div>
    <div class="PoetryContent">蓮花之君子者也 </div>
    <div class="PoetryContent">噫菊之愛(ài) </div>
    <div class="PoetryContent">陶后鮮有聞 </div>
    <div class="PoetryContent"> 蓮之愛(ài) </div>
    <div class="PoetryContent"> 同予者何人 </div>
    <div class="PoetryContent"> 牡丹之愛(ài) </div>
    <div class="PoetryContent"> 宜乎眾矣 </div>
    <div style="margin-left:40px;margin-top:-20px;">![](http://upload-images.jianshu.io/upload_images/2054-980f1bc940e1b9b9.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)</div>
</div>

通過(guò)float的方式實(shí)現(xiàn)文字豎排的demo

這種方式的優(yōu)缺點(diǎn):
優(yōu)點(diǎn):網(wǎng)頁(yè)文檔的書(shū)寫(xiě)和我們平時(shí)正常書(shū)寫(xiě)網(wǎng)頁(yè)時(shí)候一樣类早,可以為每一行設(shè)置不同的顯示樣式媚媒。
缺點(diǎn):如果一行文字比較長(zhǎng),沒(méi)有辦法換行~

方式2涩僻、css屬性transform:rotate實(shí)現(xiàn)文字豎排

實(shí)現(xiàn)原理:把一段話的每一個(gè)字放在一個(gè)span標(biāo)簽中(文字比較多可以通過(guò)js生成span)缭召,然后把這些span標(biāo)簽放在一個(gè)大的div容器中,將容器div順時(shí)針旋轉(zhuǎn)90度逆日,然后將容器中的span逆時(shí)針旋轉(zhuǎn)90度嵌巷,經(jīng)過(guò)兩次旋轉(zhuǎn)之后就達(dá)到了豎排文字的需求。

代碼實(shí)現(xiàn):

<style>
 .container {
        position: absolute;
        right: 300px;
        margin-top: -200px;
        width: 440px;
        height: 1000px;
        background-color: #FFFFFF;
        padding-left: 36px;
        font-family: "楷體";
        border: 1px solid #999999;
        margin-left: 100px;
        overflow-y: scroll;
        overflow-x:hidden;
        -webkit-transform: rotate(90deg);
    }
    
    /**每一行的容器(豎列)**/
    .container .items {
        width: 445px;
        height: 34px;
        /*background-color: #EEEEEE;*/
        /*border-left: 1px solid #999999;*/
    }
    
    .container .items .item {
        display: inline-block;
        width: 20px;
        height: 20px;
        font-size: 20px;
        text-align: center;
        line-height: 20px;
        /*border-bottom: 1px solid #CCCCCC;*/
    }
    
    .container .items .item:hover {
        background-color: pink;
        cursor: pointer;
        font-size: 22px;
    }
    
    .action1 {
        width: 100px !important;
        padding-left: 20px;
    }
    
    .rotate {
        -webkit-transform: rotate(-90deg);
    }
    
    .style1 {
        background-color: #ff6699;
        color: #EEEEEE;
    }
    
    .style2 {
        background-color: #4c98ce;
        color: #EEEEEE;
    }
    
    #vertical div {
        width: 1.5em;
        float: right;
    }
    
    #vertical .title {
        font-size: xx-large;
        font-weight: bold;
        line-height: 1em;
    }
</style>

<div class="container">
        <p> </p>
        <div class="items">              
            <div class="item"></div>          
            <div class="item"></div>
            <div class="item"></div>
            <div class="item rotate" style="font-size:36px;font-weight:bold;">愛(ài)</div>     
            <div class="item"></div>
            <div class="item rotate" style="font-size:36px;font-weight:bold;">蓮</div> 
            <div class="item"></div>
            <div class="item rotate" style="font-size:36px;font-weight:bold;">說(shuō)</div>
             <div class="item"></div>   
            <div class="item"></div>
            <div class="item"></div>         
            <div class="item"></div>
            <p> </p>
        </div>
        <p class='action1'></p>
    </div>

<!--引入jquery依賴-->
<script src="jquery.min.js"></script>
<script>
 var arr = "水陸草木之花室抽,可愛(ài)者甚蕃晴竞。晉陶淵明獨(dú)愛(ài)菊。自李唐來(lái)狠半,世人甚愛(ài)牡丹噩死。予獨(dú)愛(ài)蓮之出淤泥而不染,濯清漣而不妖神年,中通外直已维,不蔓不枝,香遠(yuǎn)益清已日,亭亭凈植垛耳,可遠(yuǎn)觀而不可褻玩焉。予謂菊飘千,花之隱逸者也堂鲜;牡丹,花之富貴者也护奈;蓮缔莲,花之君子者也。噫霉旗!菊之愛(ài)痴奏,陶后鮮有聞蛀骇。蓮之愛(ài),同予者何人读拆?牡丹之愛(ài)擅憔,宜乎眾矣!".split("");

    var cHeight = $(".items").height();

    var textHeight = $(".item").height();

    var vCount = parseInt(cHeight / textHeight); //每列顯示的字?jǐn)?shù)

    var textArr = [];
    for (var i = 0; i < arr.length; i++) {
        if (i % 20 == 0) {
            textArr.push({
                "hanzi": arr[i]
            });
        } else {
            textArr[textArr.length - 1].hanzi += arr[i];
        }
    }

    var html = "";
    for (var j = 0; j < textArr.length; j++) {
        html += "<div class='items'>";
        var tempArr = textArr[j].hanzi.split("");
        console.log(tempArr)
        for (var k = 0; k < tempArr.length; k++) {
           if(/[<>《》檐晕!*(^)$%~!@#$…&%¥—+=暑诸、。辟灰,屠列;‘’“”:·`]/.test(tempArr[k])){
                html += "<div class='item' style='display:inline'>" + tempArr[k] + "</div>";
            } else {
                html += "<div class='item rotate'>" + tempArr[k] + "</div>";
            }
        }
        html += "</div>";
    }
    
    $(".action1").after(html);
</script>

通過(guò)transform:rotate方式實(shí)現(xiàn)文字豎排的demo

這種方式的優(yōu)缺點(diǎn):
**優(yōu)點(diǎn):一大段文字也可以實(shí)現(xiàn)自動(dòng)換行。
**缺點(diǎn):在具體位置實(shí)現(xiàn)換行控制比較麻煩伞矩,而且每個(gè)字寫(xiě)都要用一個(gè)span標(biāo)簽來(lái)包住。

方式3夏志、CSS屬性write-mode實(shí)現(xiàn)文字豎排

writing-mode直譯過(guò)來(lái)就是書(shū)寫(xiě)模式乃坤,它是為了控制文本布局而產(chǎn)生的,換句話說(shuō)它就是用來(lái)實(shí)現(xiàn)文字豎排的沟蔑,只不過(guò)文字豎排我們平時(shí)用的少湿诊,所以這個(gè)css屬性也不常見(jiàn),發(fā)現(xiàn)這個(gè)屬性之前我還是在用一些其它方式(前兩中方法)實(shí)現(xiàn)文字的豎排瘦材。

writing-mode的屬性比較多厅须,詳細(xì)請(qǐng)看MDN,文字豎排使用到的屬性是writing-mode:vertical-rl從右向左豎排,writing-mode:vertical-lr從左向右豎排

代碼實(shí)現(xiàn)

<style>
#content1{
    width:900px;
    height:200px;
    -webkit-writing-mode: vertical-rl;
    writing-mode: vertical-rl;
    padding-top:40px;
    font-size:16px;
}
  
#content2{
    width:900px;
    height:200px;
    -webkit-writing-mode: vertical-lr;
    writing-mode: vertical-lr;
    padding-top:40px;
    font-size:16px;
    }
</style>

<div id="content1">
    <p style="letter-spacing:1em;font-size:20px;">水調(diào)歌頭 </p>
    <p style="letter-spacing:.3em;font-size:18px;">蘇 軾</p>
    <p>明月幾時(shí)有</p><p>把酒問(wèn)青天</p><p>不知天上宮闕</p><p>今夕是何年</p><p>我欲乘風(fēng)歸去</p><p>惟恐瓊樓玉宇</p><p>高處不勝寒</p><p>起舞弄清影</p><p>何似在人間</p><p>  轉(zhuǎn)朱閣</p><p>低綺戶</p><p>照無(wú)眠</p><p>不應(yīng)有恨</p><p>何事長(zhǎng)向別時(shí)圓</p><p>人有悲歡離合</p><p>月有陰晴圓缺</p><p>此事古難全</p><p>但愿人長(zhǎng)久</p><p>千里共蟬娟</p>
</div>
<hr>
<div id="content2">
    <p style="letter-spacing:1em;font-size:20px;">水調(diào)歌頭 </p>
    <p style="letter-spacing:.3em;font-size:18px;">蘇 軾</p>
    <p>明月幾時(shí)有</p><p>把酒問(wèn)青天</p><p>不知天上宮闕</p><p>今夕是何年</p><p>我欲乘風(fēng)歸去</p><p>惟恐瓊樓玉宇</p><p>高處不勝寒</p><p>起舞弄清影</p><p>何似在人間</p><p>  轉(zhuǎn)朱閣</p><p>低綺戶</p><p>照無(wú)眠</p><p>不應(yīng)有恨</p><p>何事長(zhǎng)向別時(shí)圓</p><p>人有悲歡離合</p><p>月有陰晴圓缺</p><p>此事古難全</p><p>但愿人長(zhǎng)久</p><p>千里共蟬娟</p>
</div>

通過(guò)write-mode方式實(shí)現(xiàn)文字豎排的demo

這種方式的優(yōu)缺點(diǎn):
**優(yōu)點(diǎn):實(shí)現(xiàn)文字豎排的方式比較的方便和優(yōu)雅
**缺點(diǎn):語(yǔ)法比較多,而且有兩套不同的規(guī)范(IE和css3)食棕!

注意事項(xiàng):write-mode會(huì)改變一些原有的規(guī)則朗和,如我們隊(duì)上面的content1中的p設(shè)置行高,那么行高會(huì)變成左右行距離而不是上下行距簿晓。

本文如有誤眶拉,請(qǐng)不吝賜教!
如果你有更好的實(shí)現(xiàn)豎排的方式和方法憔儿,可以在評(píng)論區(qū)交流討論忆植。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市谒臼,隨后出現(xiàn)的幾起案子朝刊,更是在濱河造成了極大的恐慌,老刑警劉巖蜈缤,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拾氓,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡底哥,警方通過(guò)查閱死者的電腦和手機(jī)痪枫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門织堂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人奶陈,你說(shuō)我怎么就攤上這事易阳。” “怎么了吃粒?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵潦俺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我徐勃,道長(zhǎng)事示,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任僻肖,我火速辦了婚禮肖爵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘臀脏。我一直安慰自己劝堪,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布揉稚。 她就那樣靜靜地躺著秒啦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪搀玖。 梳的紋絲不亂的頭發(fā)上余境,一...
    開(kāi)封第一講書(shū)人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音灌诅,去河邊找鬼芳来。 笑死,一個(gè)胖子當(dāng)著我的面吹牛猜拾,可吹牛的內(nèi)容都是我干的绣张。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼关带,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼侥涵!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起宋雏,我...
    開(kāi)封第一講書(shū)人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤芜飘,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后磨总,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體嗦明,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年蚪燕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了娶牌。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片奔浅。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖诗良,靈堂內(nèi)的尸體忽然破棺而出汹桦,到底是詐尸還是另有隱情,我是刑警寧澤鉴裹,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布舞骆,位于F島的核電站,受9級(jí)特大地震影響径荔,放射性物質(zhì)發(fā)生泄漏督禽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一总处、第九天 我趴在偏房一處隱蔽的房頂上張望狈惫。 院中可真熱鬧,春花似錦鹦马、人聲如沸胧谈。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至难菌,卻和暖如春试溯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背郊酒。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工遇绞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人燎窘。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓摹闽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親褐健。 傳聞我的和親對(duì)象是個(gè)殘疾皇子付鹿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評(píng)論 1 92
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理蚜迅,服務(wù)發(fā)現(xiàn)舵匾,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,498評(píng)論 25 707
  • 那是我還是個(gè)孩子 完全不懂生活的含義 無(wú)憂無(wú)慮的活著 這就是我對(duì)生活的定義 直到人們一個(gè)個(gè)離我遠(yuǎn)了 我才明白 生活...
    木柘閱讀 257評(píng)論 0 3
  • 最近每天都在高強(qiáng)度備戰(zhàn)雅思谁不,很累坐梯,但是正好給了我自己獨(dú)處的時(shí)間。正好室友要么去實(shí)習(xí)要么去圖書(shū)館刹帕,留下寢室這片小天地...
    celia9514閱讀 215評(píng)論 0 0