亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

CSS3繪制不規(guī)則圖形的一些方法示例

uml.org.cn   發(fā)布時間:2015-11-07 11:24:51   作者:佚名   我要評論
這篇文章主要介紹了CSS3繪制不規(guī)則圖形的一些方法示例,包括polygon()的使用等很多實用技巧,需要的朋友可以參考下

前言

CSS 創(chuàng)建復雜圖形的技術即將會被廣泛支持,并且應用到實際項目中。本篇文章的目的是為大家開啟它的冰山一角。我希望這篇文章能讓你對不規(guī)則圖形有一個初步的了解。

現(xiàn)在,我們已經(jīng)可以使用CSS 3 常見不規(guī)則復雜圖形了,如下圖所示:
2015117112612228.png (644×430)

使用CSS創(chuàng)建的圖形,無法內(nèi)置文字或?qū)崿F(xiàn)文字環(huán)繞效果。因此,如何實現(xiàn)不規(guī)則圖形和文字復雜布局也成為了一個熱議話題。

今天我們就來介紹一下如何實現(xiàn)這個效果。文章中我們將闡述如何使用 CSS創(chuàng)建不規(guī)則圖形,實現(xiàn)不規(guī)則的文本布局。學會如何創(chuàng)建不規(guī)則圖形之后,你就可以發(fā)揮想象力,創(chuàng)建唯美的CSS頁面了,下圖既是使用該技術創(chuàng)建的《愛麗絲夢游仙境》效果圖:
2015117112636484.png (644×404)

注:這是CSS的最新技術,所以對瀏覽器版本要求較高。如果需要查看在線示例你需要確保瀏覽器支持這個CSS技術。在本文中我也將提供一些效果截圖查看效果。

聲明圖形

我們需要使用shape-outside 屬性聲明不規(guī)則圖形。當前, shape-outside 屬性只能被應用于浮動元素,并且只能應用于塊級元素。如果需要在非塊級元素上使用這些屬性,必須先把元素聲明為塊級。

Shape-* 值有三種賦值方式: 自動,基本圖形或者圖片鏈接。如果被設置為自動,浮動元素將繼續(xù)作為傳統(tǒng)的盒模型進行渲染。如果你還不熟悉盒模型,請參考CSS盒模型,這是閱讀本篇文章的基礎。

繪制方法包括:rectangle、inset-rectangle、circle、ellipse或polygon方法等。你可以通過鏈接查看詳細的描述。

如果屬性被設置為圖片鏈接, 瀏覽器會按照圖片的“alpha通道”來繪制圖形形狀。

在元素上創(chuàng)建坐標系

聲明了CSS 圖形之后,我們首先需要創(chuàng)建將用于繪制圖形的坐標系。

坐標系是非常必要的,因為圖形需要依據(jù)此坐標系上的點陣進行繪制。shape-* 屬性是基于盒模型的,為了使它啟作用,需要明確指定盒子的大小,限制不規(guī)則圖形在盒子范圍內(nèi),它也將被用于創(chuàng)建繪制坐標系,坐標系的起點位于形盒子左上角。如果沒有明確寬和高聲明, shape-* 屬性將不啟作用。

設置自定義圖形的背景色

應用了自定義圖形,它的盒模型仍然存在,其它傳統(tǒng)的樣式設置將作用于盒模型范圍。例如,下面這個例子中,

我們僅僅想創(chuàng)建一個浮動圓形,并設置這個圓形的背景色。按照正常的思路理解,效果應該是這樣的:
2015117112656421.png (644×361)

但是當設置了盒子的背景色后,你會發(fā)現(xiàn)和預期的效果不同,效果如下:
2015117112714131.gif (644×362)

在上圖中我們看到背景色被應用到盒模型范圍,而不是我們預想的圓形內(nèi)。

那么,我們應該怎樣設置圓形的背景色呢?這就引出了一個新的CSS樣式: clip-path 。clip-path 用于限制當前樣式的作用范圍。在下面的例子中你將看到它的使用方法。

提醒

現(xiàn)在,shape-outside 屬性只作用域浮動的元素,并且僅限制于在塊級元素上應用。使用這些屬性定義的元素,其周圍的文本將依賴于圖形形狀排布。未來的CSS 形狀將不僅僅限制與應用于浮動元素上,我們將不僅僅可以在文本外部的圖形上做文章,完全可以在其內(nèi)部定義自定義圖形,實現(xiàn)如下效果:
2015117112744344.png (385×339)

實例-使用shape-outside 創(chuàng)建環(huán)繞于自定義形狀的浮動文本

我們從一個簡單的例子開始。在實例中我們將創(chuàng)建一個自定義圖形,并且內(nèi)置文本流,最終效果圖如下(文章末尾提供實例下載鏈接):
2015117112805775.jpg (656×310)

例子中我們擁有兩個容器,用于設置自定義形狀和嵌套文本內(nèi)容。代碼如下:

CSS Code復制內(nèi)容到剪貼板
  1. <div class="container">   
  2. <div class="shaped"></div>   
  3.   
  4. <div class="content">   
  5.   
  6. <h1><span>La</span> Tour <br/>Eiffel</h1>   
  7.   
  8. <p>Lorem Ipsum.....</p>   
  9.   
  10. </div>   
  11.   
  12. </div>  

首先我們需要聲明浮動區(qū)域的DIV節(jié)點,并且使用固定值設置大小。代碼如下:

CSS Code復制內(nèi)容到剪貼板
  1. .container{   
  2. overflow:hidden;   
  3.   
  4. height: 100vh;   
  5.   
  6. width: 100vw;   
  7.   
  8. }   
  9.   
  10. .shaped{   
  11.   
  12. float:left;   
  13.   
  14. height:100vh;   
  15.   
  16. width:40vw;   
  17.   
  18. float:rightright;   
  19.   
  20. backgroundblack url(../images/eiffel.jpg) center top no-repeat;   
  21.   
  22. background-size:cover;   
  23.   
  24. }  

現(xiàn)在坐標系已經(jīng)創(chuàng)建成功,接下來我們將要繪制圖形了。可以通過兩種方式來繪制圖形:

使用polygon()

我們可以使用polygon() 方法來計算圖形范圍。這個方法從坐標系中獲取多個點用于繪制圖形,每個點由(x, y)值定位。 例子中我們將要創(chuàng)建一個非常簡單的多邊形,如下圖所示:
2015117112823657.jpg (548×262)

坐標點的單位可以是固定值,或者百分比。在這個例子中我們將以百分比的形式設置點陣位置。接下來我們需要應用這個樣式在浮動元素上。

CSS Code復制內(nèi)容到剪貼板
  1. .shaped{   
  2. /*…*/  
  3.   
  4. shape-outside: polygon(0 0, 100% 0, 100% 100%,30% 100%);   
  5.   
  6. shape-margin20px;   
  7.   
  8. }  

應用以上的樣式后,一個不規(guī)則的圖形-梯形產(chǎn)生了。

可以看到代碼中使用了shape-margin 屬性,它用于設置圖形和文本內(nèi)容之間的邊距。

接下來需要添加背景圖,需要注意在添加背景圖之后,它將被應用于盒模型,目前為止效果如下:
2015117112936972.gif (640×301)

所以,為了達到預期效果,我們需要設置clip-path 屬性,并且設置其范圍和shape-outside 屬性相同。

CSS Code復制內(nèi)容到剪貼板
  1. .shaped{   
  2. /*…*/  
  3.   
  4. clip-path: polygon(0 0, 100% 0, 100% 100%,30% 100%);   
  5.   
  6. }  

現(xiàn)在,我們就通過polygon() 方法實現(xiàn)了目標效果。

使用圖片鏈接

我們也可以通過圖片(嚴格說是擁有通明區(qū)域的圖片)來創(chuàng)建不規(guī)則圖形,依據(jù)圖片的“alpha通道” 生成不規(guī)則圖形。

例如,替代polygon() 聲明方法。我們可以設置shape-outside 屬性值為圖片URI,瀏覽器就會自動依據(jù)圖片來繪制不規(guī)則圖形。
2015117112842524.jpg (614×289)

圖片中的透明部分將被聲明為文本元素的浮動部分。其余部分被聲明為不規(guī)則圖形。代碼如下:

CSS Code復制內(nèi)容到剪貼板
  1. .shaped{   
  2. /*…*/  
  3.   
  4. shape-outsideurl(/images/mm.png);   
  5.   
  6. shape-image-threshold: 0.5;這個屬性用于設置浮動區(qū)域透明度范圍   
  7.   
  8. }  

上述的兩種方法都擁有各自的優(yōu)缺點。例如,如果圖形過于復雜,通過圖片方法比手動計算圖形繪制節(jié)點更方便。

相關文章

  • 純css3繪制的小黃人頭像動畫特效源碼

    這是一款采用純css3繪制的小黃人頭像動畫特效源碼,畫面中的小黃人手腳、眼睛、嘴以及頭發(fā)都可呈現(xiàn)運動效果。該特效完全采用純css3技術實現(xiàn),沒有引入外部圖片資源
    2016-04-06
  • 純css3繪制的QQ企鵝動畫特效源碼

    這是一款采用純css3繪制的QQ企鵝動畫特效源碼,畫面上的企鵝可呈現(xiàn)出雙手上下擺動的效果,該特效采用純css3技術繪制,沒有引入任何外部圖片
    2016-04-02
  • 純css3繪制的精美購物優(yōu)惠券樣式效果源碼

    這是一款采用純css3繪制的精美購物優(yōu)惠券樣式效果源碼,完全采用css3的徑向漸變功能實現(xiàn)的優(yōu)惠券圖片效果,沒有使用任何外部圖片
    2016-04-01
  • 純css3繪制的哆啦a夢機器貓頭像效果源碼

    這是一款基于純css3繪制的哆啦a夢機器貓頭像效果源碼,沒有采用任何圖片即可繪制出機器貓的頭像效果
    2016-03-17
  • HTML5+CSS3繪制鋸齒狀的矩形

    這篇文章主要教大家如何利用HTML5 CSS3繪制出鋸齒狀的矩形,繪制圖形時可以用canvas標簽,感興趣的小伙伴們可以參考一下
    2016-03-01
  • 使用HTML和CSS3繪制基本卡通圖案的示例分享

    這篇文章主要介紹了使用CSS3繪制基本卡通圖案的示例分享,不過必須承認,這樣做的代碼量并不是很少...well,需要的朋友可以參考下
    2015-11-06
  • CSS3繪制圓角矩形的簡單示例

    這篇文章主要介紹了CSS3繪制圓角矩形的簡單示例,注意一下各瀏覽器對CSS3的兼容性,需要的朋友可以參考下
    2015-09-28
  • 使用CSS3來繪制一個月食圖案

    這篇文章主要介紹了使用CSS3來繪制一個月食圖案,其中用到了不少CSS3中基本的繪圖方法,是一個良好的學習示例,需要的朋友可以參考下
    2015-07-18
  • 用CSS3繪制三角形的簡單方法

    這篇文章主要介紹了用CSS3繪制三角形的簡單方法,是CSS前端繪圖的基礎,需要的朋友可以參考下
    2015-07-17
  • 純CSS3繪制打火機動畫火焰效果

    這篇文章主要為大家詳細介紹了純CSS3繪制打火機動畫火焰效果的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-07-18

最新評論