幾日,隨著小白對HTML5認識的提升,他自己沒事瀏覽網頁的時候總會注意一些特殊的展示效果,讓他印象最深刻的一個效果就是用戶頭像了,一個矩形的圖片怎么就顯示成圓形了呢?一上午沒想明白,下午看著老朱沒什么事,就去向老朱請教:“朱哥!網頁上的圖片怎么能顯示成圓角呢?特別是正圓形是怎么做出來的啊?”
老朱隨口說道:“border-radius啊!之前我們已經用過幾次了啊!”
小白說:“這不是控制容器圓角的么?圖片也可以控制么?”
老朱說:“講圖片的時候我不是告訴過你了么?肯定是沒好好聽,圖片標簽img也是一個容器,它是一個放圖片的容器,在img里面顯示什么圖片是靠src屬性來決定的。既然是容器你不是就可以用border-radius來控制了么?你試試!”
小白高興的說道:“真的成圓角了啊!我要把他變成正圓,是不是圓角設置成它寬度的一半就可以了?”
老朱說:“你先試試吧!試玩就知道了!”
“不行啊!這是怎么回事?”
老朱跟小白說:“css的圓角屬性值最多是邊的一半!你的圖片寬比高大,所以圓角值最多位高的一半!你可以先嘗試把圖片的寬高設置成一樣的看看!”
“果然變成正圓了,可是這樣的話圖片就有變形了,如果小頭像的話還好說,大頭像可就不好看了!”
老朱說道:“所以現在很多網站頭像上傳的時候都會讓用戶截取一個正方形的圖片生成頭像,就是為了方便進行圓角控制!”
小白說:“有沒有折中的方法?假如網站沒有用戶設置正方形頭像的功能,還不想讓圖片變形呢?”
老朱說:“正圓顯示的肯定是一個高和寬一樣的區域,所以圖片被截取肯定是不可避免的了。你可以給圖片外部套一個div容器,讓這個div容器的寬度高度一致,并且設置超出隱藏。這樣設置一下div的圓角就可以了!你試試看”
小白做好以后說道:“我又發現一個問題,div設置寬和高一樣以后,圖片如果高比寬小,圖片高度得跟父容器高度一致才能出來效果!而圖片高比寬大,則需要設置圖片寬度和父容器寬度一致。我覺得要把它完善必須使用js來判斷圖片寬和高的比例進行動態設置。”
“嗯,你可以試試!”
聰明的大家,你們有沒有什么更好的圖片圓角方式呢?
想學H5的朋友可以關注老爐,您的關注是我持續更新《小白HTML5成長之路》的動力!
為大家介紹如何使用 CSS 來布局圖片。
圓角圖片
實例
圓角圖片:
img {
border-radius: 8px;
}
實例
橢圓形圖片:
img {
border-radius: 50%;
}
嘗試一下 ?
縮略圖
我們使用 border
屬性來創建縮略圖。
實例
img {
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
}
<img src="paris.jpg" alt="Paris">
嘗試一下 ?
實例
a {
display: inline-block;
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
transition: 0.3s;
}
a:hover {
box-shadow: 0 0 2px 1px rgba
(0, 140, 186, 0.5);
}
<a href="paris.jpg">
<img src="paris.jpg" alt="Paris">
</a>
響應式圖片
響應式圖片會自動適配各種尺寸的屏幕。
實例中,你可以通過重置瀏覽器大小查看效果:
如果你需要自由縮放圖片,且圖片放大的尺寸不大于其原始的最大值,則可使用以下代碼:
實例
img {
max-width: 100%;
height: auto;
}
嘗試一下 ?
提示: Web 響應式設計更多內容可以參考 CSS 響應式設計教程。
圖片文本
如何定位圖片文本:
實例
左下角左上角右上角右下角居中
嘗試一下:
左上角 ? 右上角 ? 左下角 ? 右下角 ? 居中 ?
卡片式圖片
實例
div.polaroid {
width: 80%;
background-color: white;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
img {width: 100%}
div.container {
text-align: center;
padding: 10px 20px;
}
圖片濾鏡
CSS filter
屬性用為元素添加可視效果 (例如:模糊與飽和度) 。
注意: Internet Explorer 或 Safari 5.1 (及更早版本) 不支持該屬性。
實例
修改所有圖片的顏色為黑白 (100% 灰度):
img {
-webkit-filter: grayscale(100%); /* Chrome, Safari, Opera */
filter: grayscale(100%);
}
提示: 訪問 CSS 濾鏡參考手冊 查看更多內容。
響應式圖片相冊
實例
.responsive {
padding: 0 6px;
float: left;
width: 24.99999%;
}
@media only screen and (max-width: 700px){
.responsive {
width: 49.99999%;
margin: 6px 0;
}
}
@media only screen and (max-width: 500px){
.responsive {
width: 100%;
}
}
嘗試一下 ?
圖片 Modal(模態)
本實例演示了如何結合 CSS 和 JavaScript 來一起渲染圖片。
首先,我們使用 CSS 來創建 modal 窗口 (對話框), 默認是隱藏的。
然后,我們使用 JavaScript 來顯示模態窗口,當我們點擊圖片時,圖片會在彈出的窗口中顯示:
實例
// 獲取模態窗口
var modal = document.getElementById('myModal');
// 獲取圖片模態框,alt 屬性作為圖片彈出中文本描述
var img = document.getElementById('myImg');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function(){
modal.style.display = "block";
modalImg.src = this.src;
modalImg.alt = this.alt;
captionText.innerHTML = this.alt;
}
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!
度圖形在一些網頁中會用到,實現方法有很多。可以通過加載背景圖或者放img圖片來實現,下面說說用css的圓角來實現有弧度的圖形!
具體效果圖:
實現代碼:
通過偽類追加一個半圓效果拼裝成一個有弧度的圖形
*請認真填寫需求信息,我們會在24小時內與您取得聯系。