一、基本的border-radius屬性
使用CSS的border-radius屬性可以實現對元素的圓角處理,該屬性可以接受一個或多個值來表示每個角的圓角程度,如:
/*在一個元素上同時設置四個角的圓角*/ div{ border-radius: 10px; } /*分別設置四個角的圓角*/ div{ border-top-left-radius: 10px; border-top-right-radius: 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; }
使用這種方式設置的圓角較為簡單,但是它只適合實現簡單的圓角效果,而且圓角的大小是固定的,無法實現動態調整大小的效果。
二、使用JS插件實現動態圓角
藉助第三方JS插件,可以通過JS代碼來動態處理元素的圓角效果,其中比較常用的插件是jquery-corner。
/*引入jquery和jquery-corner插件*/ /*在需要圓角處理的元素上調用corner()函數*/ $("div").corner();
該插件的使用非常簡單,只需要在需要圓角處理的元素上調用corner()函數即可,同時還可以傳遞一些參數來控制圓角的大小與樣式。
三、CSS3的clip-path屬性
CSS3的clip-path屬性可以實現比較靈活的圓角處理,而且可以實現動態調整圓角大小的效果。
/*在需要圓角處理的元素上應用clip-path屬性*/ div{ -webkit-clip-path: polygon(0 10px, 10px 0, calc(100% - 10px) 0, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px)); clip-path: polygon(0 10px, 10px 0, calc(100% - 10px) 0, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px)); }
使用CSS3的clip-path屬性需要設置具體的路徑來實現圓角處理,這個過程可能較為繁瑣,但是可以比較靈活地實現不同大小的圓角效果。
四、HTML5的canvas畫布
最後一種實現圖像圓角效果的方法是使用HTML5的canvas畫布,通過JS代碼生成圓角圖片並顯示在頁面上。
/*繪製圓角圖片的方法*/ function drawCornerImage(imageUrl, canvasId, radius){ var canvas = document.getElementById(canvasId); var ctx = canvas.getContext('2d'); var img = new Image(); img.src = imageUrl; img.onload = function(){ ctx.beginPath(); ctx.moveTo(radius, 0); ctx.lineTo(canvas.width - radius, 0); ctx.quadraticCurveTo(canvas.width, 0, canvas.width, radius); ctx.lineTo(canvas.width, canvas.height - radius); ctx.quadraticCurveTo(canvas.width, canvas.height, canvas.width - radius, canvas.height); ctx.lineTo(radius, canvas.height); ctx.quadraticCurveTo(0, canvas.height, 0, canvas.height - radius); ctx.lineTo(0, radius); ctx.quadraticCurveTo(0, 0, radius, 0); ctx.closePath(); ctx.clip(); ctx.drawImage(img, 0, 0, canvas.width, canvas.height); } } /*在頁面上顯示圓角圖片*/ drawCornerImage('image.png', 'myCanvas', 20);
使用canvas進行圓角處理的過程較為複雜,需要用到JS繪圖API對圖片進行裁剪和繪製,但是具有比較廣泛的適用範圍。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/156531.html