摘要:什么是文字左右環繞圖片就是下圖的效果效果的代碼可以點擊這里查看在中,并沒有這種設置,但是我們可以通過一些小技巧來模擬出類似的效果。下面,就要使用一些技巧來實現左右環繞的文字效果了。
什么是文字左右環繞圖片?就是下圖的效果:
效果的CSS代碼可以點擊這里查看
在CSS中,并沒有float: center這種設置,但是我們可以通過一些小技巧來模擬出類似的效果。
經常會有小伙伴問:有float: left和right,為什么沒有float: center?我的答案是:
1.text-align: center已經可以實現內聯元素的居中效果
2.在一行中使文字環繞顯示在圖片的兩側,這種效果瀏覽器處理起來是非常困難的。除非將文字顯示為兩列,但這是另一個問題
3.當涉及到文本時,float實際上應該被稱為環繞,float:left的意思是“將這個元素放置在容器的左側,并將其右側的所有內容都環繞其顯示”,在這種情況下,我們討論的float:center實際上是兩側環繞,這會帶來一系列的問題,比如如何確定元素在容器中的“深度”?
為了模擬實現float: center的效果,我們通過創建兩個div將文字劃分為兩列,其中居中的圖片寫在第一個div中:
京都位于本州島的中心附近,在王位移到江戶...
因此,京都許多保存下來的地方都是聯合國教科文組織世界遺產,包括...
首先,我們設置兩個div即.leftcol和.rightcol元素為display: table-cell,同時將容器.container元素設置為display: table:
div#container { display: table; width: 80%; max-width: 900px; /* 容器最大寬度900px */ margin: 0 auto; line-height: 1.5; } div#leftcol, div#rightcol { display: table-cell; padding: 1em; } div#container img { width: 55%; /* 圖片的寬度是第一列div寬度的55% */ height: auto; }
這樣,文字就顯示成為表格的兩列了:
圖片會按照其該有的樣式顯示在第一列的頂部左側,并且底部與文字的第一行的基線對齊。
接下來,如果給圖片設置一個float:right,它就會在第一個div中右側浮動,并且文字會環繞在圖片的左側顯示:
到這里,我們實現了一個最傳統的布局:兩列文字,其中一列包含一張浮動的圖片。
下面,就要使用一些技巧來實現左右環繞的文字效果了。
第一步,通過設置margin-right屬性負值,將圖片右移一定的距離:
div#container img { float: right; width: 55%; height: auto; margin-right: -20%; /* 圖片向右移動第一個div寬度20%的距離 */ margin-left: 20px; margin-bottom: 20px; }
margin-left和margin-bottom屬性設置圖片與左側和下方的文字都間距20px。
這個時候圖片會和第二列的文字顯示重合了:
第二步,通過:before偽元素在第二個div中生成一個元素,它不包含任何內容,僅僅是為了浮動后讓文字環繞它。
div#rightcol:before { content: " "; float: left; width: 25%; padding-top: 102%; }
這個偽元素被設置為左浮動,并且它的寬度與圖片右移的距離加起來剛好是圖片的寬度。
padding-top屬性設置的稍微大一點,這樣文字與圖片能夠空出一些距離。
如果給這個沒有任何內容的偽元素添加一個紅色的邊框,我們就可以看到它的位置:
這個空偽元素的實際作用就是將與圖片重合的文字隔開,并使它們環繞,這樣就模擬出了右側文字環繞圖片的效果,而實際上文字環繞的是偽元素。
這種環繞方式有一個限制,就是圖片必須位于div的頂部,我們不能在垂直方向上任意放置圖片。
最后,再設置一些美化的樣式和自適應的代碼,最終的效果就實現了:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/114550.html
摘要:什么是文字左右環繞圖片就是下圖的效果效果的代碼可以點擊這里查看在中,并沒有這種設置,但是我們可以通過一些小技巧來模擬出類似的效果。下面,就要使用一些技巧來實現左右環繞的文字效果了。 什么是文字左右環繞圖片?就是下圖的效果:showImg(https://segmentfault.com/img/bVbr3Wt?w=627&h=461); 效果的CSS代碼可以點擊這里查看 在CSS中,并...
摘要:而在文檔流中,如果浮動元素和跟隨元素都是元素,它們兩在默認情況下都將占據一行。而由于浮動元素脫離了文檔流,如果父元素沒有指定高度或者其他元素撐起,也就出現了所謂的浮動元素的父元素高度塌陷。 為什么要寫《重塑你的CSS世界觀》系列文章 由于從工作到現在,我的主要工作都是寫JavaScript,幾乎沒怎么碰CSS,通常都是別人寫好界面,然后我來開發JavaScript邏輯代碼,這導致了嚴重...
摘要:而在文檔流中,如果浮動元素和跟隨元素都是元素,它們兩在默認情況下都將占據一行。而由于浮動元素脫離了文檔流,如果父元素沒有指定高度或者其他元素撐起,也就出現了所謂的浮動元素的父元素高度塌陷。 為什么要寫《重塑你的CSS世界觀》系列文章 由于從工作到現在,我的主要工作都是寫JavaScript,幾乎沒怎么碰CSS,通常都是別人寫好界面,然后我來開發JavaScript邏輯代碼,這導致了嚴重...
摘要:在正常情況下,頁面總是從左到右,從上到下布局,這種被稱為正常的流。破壞文檔流這是最本質的特性,因此設計的初衷就是破壞文檔流。但是也有一種情況是,浮動元素前后并沒有內聯元素,因此也就不存在行框盒子,這時候就是浮動錨點在起作用。 前幾天有小伙伴說對float的學習云里霧里的,下面我就給大家說一下關于float的一些問題。 在css中,是存在流的概念的。在正常情況下,頁面總是從左到右,從上到...
閱讀 1603·2023-04-26 01:54
閱讀 1634·2021-09-30 09:55
閱讀 2654·2021-09-22 16:05
閱讀 1872·2021-07-25 21:37
閱讀 2631·2019-08-29 18:45
閱讀 1895·2019-08-29 16:44
閱讀 1893·2019-08-29 12:34
閱讀 1356·2019-08-23 14:02