最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

CSS實(shí)現(xiàn)梯形的N種方式小結(jié)

  發(fā)布時(shí)間:2023-05-23 17:11:57   作者: 仙兒仙兒   我要評論
本文主要介紹了CSS實(shí)現(xiàn)梯形的N種方式小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

如何使用css實(shí)現(xiàn)梯形,最近研究了好多方式,在此總結(jié)下。

方法一 使用border屬性

<body>
<div class="wrap"></div>
</body>
<style>       
      .wrap{         
        width: 200px;     
        border-bottom: 200px solid red;                  border-top: 200px solid transparent;  
        border-left: 100px solid transparent;          
        border-right: 100px solid transparent;      
           }   
 </style>

效果如下

image.png

缺點(diǎn):只能展示梯形的色塊,如果你想在圖片中展示文字和圖片就不行了;

方法二 使用transform 屬性

.box{             
width: 80px;           
height: 180px;            
background: red;            
transform: perspective(0.5em) rotateY(-3deg);       
}           

image.png

但是使用transform會使梯形中的文字和圖片也發(fā)生3d偏移,如果想讓文字不進(jìn)行偏移可以吧transform屬性設(shè)置在盒子的偽元素上面,這樣文字就不會收到偏移的影響。但是針對圖片目前還沒發(fā)現(xiàn)什么有效的解決方案。

缺點(diǎn):圖片在梯形中會產(chǎn)生偏移扭曲,達(dá)不到我們想要的效果。

方法三 利用數(shù)學(xué)

使用兩個(gè)四邊形拼接,這個(gè)方法自己研究下,需要使用父子組件,把父組件按照一定的角度旋轉(zhuǎn),然后子組件超出部分進(jìn)行overflow:hidden就可以啦。代碼后續(xù)補(bǔ)充。

缺點(diǎn):方法過于復(fù)雜,需要計(jì)算好角度,確定好父子元素的寬高。

方法四 使用# clip-path 屬性

clip-path: polygon(100% 0, 100% 50%, 50% 100%, 0 50%);

原理:通過甚至四邊形的四個(gè)頂點(diǎn)的位置來控制四邊形邊的走向,可以繪制各種各樣的梯形

image.png

缺點(diǎn):沒有發(fā)現(xiàn),在can i use 中的兼容性達(dá)到了98%

最后我使用的使方法四clip-path 屬性

同時(shí)如果你想對梯形元素所在的html轉(zhuǎn)換成圖片的話,可以考慮html2canvas 和 dom-to-image .但是經(jīng)過我的實(shí)踐發(fā)現(xiàn)html2canva無法對裁剪也就是方法四,方法3適用,另外對于方法2的transform屬性也會失效。所以dom-to-image .是更好的選擇

dom-to-image 中topng的原理:兼容性97%

// 里面其實(shí)就是調(diào)用了 draw 方法,promise返回的是一個(gè)canvas對象
function toPng(node, options) {
    return draw(node, options || {})
        .then(function (canvas) {
            return canvas.toDataURL();
        });
}
function draw(domNode, options) {
    // 將 dom 節(jié)點(diǎn)轉(zhuǎn)為 svg(data: url形式的svg)
    return toSvg(domNode, options)    
        // util.makeImage 將 canvas 轉(zhuǎn)為 new Image(uri)
        .then(util.makeImage)
        .then(util.delay(100))
        .then(function (image) {
            var canvas = newCanvas(domNode);
            canvas.getContext('2d').drawImage(image, 0, 0);
            return canvas;
        });
    // 創(chuàng)建一個(gè)空的 canvas 節(jié)點(diǎn)
    function newCanvas(domNode) {
        var canvas = document.createElement('canvas');
        canvas.width = options.width || util.width(domNode);
        canvas.height = options.height || util.height(domNode);
		  ......
        return canvas;
    }
}

到此這篇關(guān)于CSS實(shí)現(xiàn)梯形的N種方式小結(jié)的文章就介紹到這了,更多相關(guān)CSS梯形內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

相關(guān)文章

  • css實(shí)現(xiàn)多邊形和梯形盒陰影技巧

    這篇文章主要介紹了css實(shí)現(xiàn)多邊形和梯形盒陰影技巧的相關(guān)資料,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-20
  • CSS實(shí)現(xiàn)梯形標(biāo)簽頁的方法

    在web設(shè)計(jì)中,梯形標(biāo)簽頁是很常見的一種形式,但是梯形又是一種很難實(shí)現(xiàn)的樣式,下面小編給大家分享使用CSS實(shí)現(xiàn)梯形標(biāo)簽頁的代碼,需要的朋友參考下吧
    2017-09-07

最新評論

新源县| 博客| 金溪县| 慈溪市| 兴文县| 青龙| 常宁市| 田阳县| 遵义县| 旬邑县| 句容市| 山西省| 新宾| 平武县| 奎屯市| 长白| 邓州市| 临安市| 阿拉善右旗| 巧家县| 宝兴县| 黎川县| 肥乡县| 澄江县| 清流县| 凤城市| 阳新县| 尉犁县| 钟祥市| 洛川县| 洛宁县| 兴文县| 高雄县| 新田县| 武定县| 育儿| 太仆寺旗| 崇信县| 扎鲁特旗| 于都县| 高青县|