Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
幾日,隨著小白對HTML5認識的提升,他自己沒事瀏覽網頁的時候總會注意一些特殊的展示效果,讓他印象最深刻的一個效果就是用戶頭像了,一個矩形的圖片怎么就顯示成圓形了呢?一上午沒想明白,下午看著老朱沒什么事,就去向老朱請教:“朱哥!網頁上的圖片怎么能顯示成圓角呢?特別是正圓形是怎么做出來的啊?”
老朱隨口說道:“border-radius啊!之前我們已經用過幾次了啊!”
小白說:“這不是控制容器圓角的么?圖片也可以控制么?”
老朱說:“講圖片的時候我不是告訴過你了么?肯定是沒好好聽,圖片標簽img也是一個容器,它是一個放圖片的容器,在img里面顯示什么圖片是靠src屬性來決定的。既然是容器你不是就可以用border-radius來控制了么?你試試!”
小白高興的說道:“真的成圓角了啊!我要把他變成正圓,是不是圓角設置成它寬度的一半就可以了?”
老朱說:“你先試試吧!試玩就知道了!”
“不行啊!這是怎么回事?”
老朱跟小白說:“css的圓角屬性值最多是邊的一半!你的圖片寬比高大,所以圓角值最多位高的一半!你可以先嘗試把圖片的寬高設置成一樣的看看!”
“果然變成正圓了,可是這樣的話圖片就有變形了,如果小頭像的話還好說,大頭像可就不好看了!”
老朱說道:“所以現在很多網站頭像上傳的時候都會讓用戶截取一個正方形的圖片生成頭像,就是為了方便進行圓角控制!”
小白說:“有沒有折中的方法?假如網站沒有用戶設置正方形頭像的功能,還不想讓圖片變形呢?”
老朱說:“正圓顯示的肯定是一個高和寬一樣的區域,所以圖片被截取肯定是不可避免的了。你可以給圖片外部套一個div容器,讓這個div容器的寬度高度一致,并且設置超出隱藏。這樣設置一下div的圓角就可以了!你試試看”
小白做好以后說道:“我又發現一個問題,div設置寬和高一樣以后,圖片如果高比寬小,圖片高度得跟父容器高度一致才能出來效果!而圖片高比寬大,則需要設置圖片寬度和父容器寬度一致。我覺得要把它完善必須使用js來判斷圖片寬和高的比例進行動態設置。”
“嗯,你可以試試!”
聰明的大家,你們有沒有什么更好的圖片圓角方式呢?
想學H5的朋友可以關注老爐,您的關注是我持續更新《小白HTML5成長之路》的動力!
人可能會疑惑,我為什么專門用一節內容來說邊框和圓角。其實,不為別的,只為它們在開發中,在Web系統中,在手機頁面中,太常用了。有邊框的頁面,讓人耳目一新,一目了然;有圓角的內容,讓人賞心悅目,心曠神怡。說的有點夸張了,就這么著吧。
邊框(border)一般為長方形形狀,有上下左右四條邊,CSS邊框屬性允許你指定一個元素邊框的樣式和顏色。CSS的圓角(border-radius)方法,可給任何元素制作 "圓角"效果。
在CSS中,你可以通過border和其延伸的,如border-style,來實現邊框的效果。上邊框相關的有border-top-style樣式、border-top-color顏色、border-top-width寬度和組合了它們的border-top。下、左右邊框類似,換成對應的單詞即可。
邊框樣式(border-style)常用的有dotted(點線)、dashed(虛線)、solid(實線)、double(雙邊框)這四種,不常用的有groove(3D溝槽)、ridge(3D脊邊)、inset(3D嵌入)和outset(3D突出)。
/* --------在樣式表文件中---------- */
/*4條邊框一起設置*/
.four-border {
width: 800px;
border: 2px solid darkgreen;;
}
/*四條邊框可個性化*/
.four-style {
width: 800px;
/* 上、右、下、左*/
border-width: 1px 2px 3px 4px;
/*上、右左、下*/
border-style: solid dashed double;
/*上下和右左*/
border-color: darkgreen coral;
}
/*單條邊框設置*/
.one-style {
width: 800px;
border-top: 1px groove orangered;
border-bottom-width: 5px;
border-bottom-style: inset;
border-bottom-color: darkgreen;
}
HTML文件內容
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>邊框逼格</title>
<link rel="stylesheet" type="text/css" href="ys2.css"/>
</head>
<body>
<br/><br/>
<div class="four-border">
border統一設置四條邊框<br/>
順序為:border-width、border-style和border-color.
</div>
<br/><br/>
<div class="four-style">
四條邊框一起設置,風格可不同<br/>
順序為:上、右、下、左。<br/>
1. 只有一個值(如:border-width:2px):表示4條邊框全部一樣;<br/>
2. 有兩個值(如:border-width:2px 3px):表示上下和右左;<br/>
3. 有三個值(如:border-width:2px 3px 1px):表示上、右左、下;<br/>
4. 有四個值(如:border-width:2px 3px 1px 5px):表示上、右、下、左。
</div>
<br/><br/>
<div class="one-style">
單獨一天邊框進行設置<br/>
border-top:頂部寬度、樣式、顏色,一起設置<br/>
border-top-width:上邊框寬度;<br/>
border-top-style:上邊框樣式;<br/>
border-top-color:上邊框顏色。
<br/>
</div>
</body>
</html>
輸出結果
使用CSS的border-radius 屬性,你可以給任何元素制作 "圓角"。 border-radius統一指定4個圓角,順序為左上、右上、右下和左下。如果要特定指定某個角的話,用border-top-left-radius等方式即可。
在樣式表ys2.css文中的內容
/*4個角統一指定*/
.four-radius {
width: 800px;
line-height: 40px;
background: #8AC007;
border-radius: 15px;
vertical-align: middle;
text-align: center;
}
/*單獨指定一個角*/
.one-radius {
width: 800px;
line-height: 40px;
background: #8AC007;
border-top-left-radius: 15px;
border-bottom-right-radius: 50px;
vertical-align: middle;
text-align: center;
}
在HTML文件中的內容
<br/><br/>
<div class="four-radius">
統一設置4個圓角<br/>
一個值: 四個圓角值相同;<br/>
兩個值: 左上角與右下角,右上角與左下角;<br/>
三個值: 左上角, 右上角和左下角,右下角;<br/>
四個值: 左上角,右上角,右下角,左下角。
</div>
<br/>
<div class="one-radius">
單獨指定某個角<br/>
border-top-left-radius:左上角;<br/>
border-top-right-radius:右上角;<br/>
border-bottom-right-radius:右下角;<br/>
border-bottom-left-radius:左下角。
</div>
輸出結果
不要重復造輪子,所以好多程序員一遇到問題,就喜歡搜索,我也是,哈哈哈~。CSS有指定邊框的屬性,也有圓角的屬性,將其放在一起,是不是就可以實現圓角邊框?答案毋庸置疑,答案是肯定的。
在樣式表ys2.css文件中的內容
/*圓角邊框*/
.corners {
border-radius: 50px;
border: 3px solid #8AC007;
padding: 50px;
width: 720px;
line-height: 50px;
vertical-align: middle;
text-align: center;
}
在HTML文件中的內容
<div class="corners">
邊框屬性和圓角屬性,組合成圓角邊框
</div>
輸出結果
好了,有關CSS的圓角邊框內容,老陳講完了,如果覺得對你有所幫助,希望老鐵能轉發點贊,讓更多的人看到這篇文章。你的轉發和點贊,就是對老陳繼續創作和分享最大的鼓勵。
一個當了10年技術總監的老家伙,分享多年的編程經驗。想學編程的朋友,可關注:老陳說編程。分享Python,前端(小程序)、App和嵌入式方面的干貨。關注我,沒錯的。
#前端##HTML5##CSS##程序員##Web#
TML 是用來描述網頁的一種語言。
HTML 指的是超文本標記語言 (Hyper Text Markup Language)
HTML 不是一種編程語言,而是一種標記語言 (markup language)
標記語言是一套標記標簽 (markup tag)
HTML 使用標記標簽來描述網頁
HTML5 是最新的 HTML 標準。
HTML5 是專門為承載豐富的 web 內容而設計的,并且無需額外插件。
HTML5 擁有新的語義、圖形以及多媒體元素。
HTML5 提供的新元素和新的 API 簡化了 web 應用程序的搭建。
HTML5 是跨平臺的,被設計為在不同類型的硬件(PC、平板、手機、電視機等等)之上運行。
CSS 是一種描述 HTML 文檔樣式的語言。
CSS 描述應該如何顯示 HTML 元素。
CSS 用于控制網頁的樣式和布局。
CSS3 是最新的 CSS 標準。
CSS3 被拆分為"模塊"。主要包括盒子模型、列表模塊、超鏈接方式、語言模塊、背景和邊框、文字特效、多欄布局等模塊。
CSS3的新特征有很多,例如圓角效果、圖形化邊界、塊陰影與文字陰影、使用RGBA實現透明效果、漸變效果、使用@Font-Face實現定制字體、多背景圖、文字或圖像的變形處理(旋轉、縮放、傾斜、移動)、多欄布局、媒體查詢等。
要實現如下效果:
HTML5:
<ruby>
少<rt>shào</rt>小<rt>xiǎo</rt>離<rt>lí</rt>家<rt>jiā</rt>老<rt>lǎo</rt>大<rt>dà</rt>回<rt>huí</rt>
</ruby>,
<ruby>
鄉<rt>xiāng</rt>音<rt>yīn</rt>無<rt>wú</rt>改<rt>gǎi</rt>鬢<rt>bìn</rt>毛<rt>máo</rt>衰<rt>cuī</rt>
</ruby>。
使用說明 | |
line-break | 用于指定如何(或是否)斷行。除了Firefox,其它瀏覽器都支持。取值包括: |
word-wrap | 允許長單詞或URL地址換行到下一行。所有瀏覽器都支持。取值包括: |
word-break | 定義文本自動換行。Chrome和Safari瀏覽器支持不夠友好。取值包括: |
white-space | 設置如何處理元素中的空格。所有瀏覽器都支持。取值包括: |
要實現的效果:
CSS3:
p {
text-align: center;
font: bold 60px helvetica, arial, sans-serif;
color: #fff;
text-shadow: black 0.1em 0.1em 0.2em;
}
要實現的效果:
CSS3:
p {
text-align: center;
font:bold 60px helvetica, arial, sans-serif;
color: red;
text-shadow: 0 0 4px white,
0 -5px 4px #ff3,
2px -10px 6px #fd3,
-2px -15px 11px #f80,
2px -25px 18px #f20;
}
要實現的效果:
CSS3:
p {
text-align: center;
padding: 24px;
margin: 0;
font-family: helvetica, arial, sans-serif;
font-size: 80px;
font-weight: bold;
color: #D1D1D1;
background: #CCC;
text-shadow: -1px -1px white,
1px 1px #333;
}
要實現的效果:
CSS3:
p {
text-align: center;
padding: 24px;
margin: 0;
font-family: helvetica, arial, sans-serif;
font-size: 80px;
font-weight: bold;
color: #D1D1D1;
background: #CCC;
text-shadow: 1px 1px white,
-1px -1px #333;
}
要實現的效果:
CSS3:
#demo {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-bottom: 100px solid red;
}
要實現的效果:
CSS3:
#demo {
width: 0;
height: 0;
border-left: 50px solid transparent;
border-right: 50px solid transparent;
border-top: 100px solid red;
}
要實現的效果:
CSS3:
#demo {
width: 0;
height: 0;
border-top: 50px solid transparent;
border-right: 100px solid red;
border-bottom: 50px solid transparent;
}
要實現的效果:
CSS3:
#demo {
height: 0;
width: 120px;
border-bottom: 120px solid #ec3504;
border-left: 60px solid transparent;
border-right: 60px solid transparent;
}
要實現的效果:
CSS3和HTML5:
<style type="text/css">
.bubble {
width: 200px; /*定義框大小,可忽略,讓消息框自由收縮*/
height: 50px;
background:hsla(93,96%,62%,1); /*定義背景色,必須與下面箭頭背景色一致*/
padding: 12px; /*增加補白,防止消息文本跑到框外*/
position: relative; /*定義定位包含框,方便定位箭頭*/
-moz-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px; /*圓角*/
}
.bubble:before {
content: ""; /*不顯示任何內容*/
width: 0; /*定義箭頭內容區大小*/
height: 0;
position: absolute; /*絕對定位*/
z-index:-1; /*顯示在消息框下面*/
}
.bubble.bubble-left:before {
right: 90%;
top: 50%;
-webkit-transform: rotate(-25deg);
-moz-transform: rotate(-25deg);
transform: rotate(-25deg); /*定位箭頭傾斜角度*/
/*定義箭頭長短、粗細*/
border-top: 20px solid transparent;
border-right: 80px solid hsla(93,96%,62%,1);
border-bottom: 20px solid transparent;
}
div {
margin:50px;
}
<div class="bubble bubble-left">左側消息提示框<br>class="bubble bubble-left"</div>
要實現的效果:
CSS3:
html, body {
margin: 0;
padding: 0;
height: 100%;
}
body {
background: -webkit-repeating-linear-gradient(to top, #f9f9f9, #f9f9f9 29px, #ccc 30px);
background: repeating-linear-gradient( to top, #f9f9f9, #f9f9f9 29px, #ccc 30px );
background-size: 100% 30px;
position: relative;
}
body:before {
content: "";
display: inline-block;
height: 100%;
width: 4px;
border-left: 4px double #FCA1A1;
position: absolute;
left: 30px;
}
需要實現的效果:
CSS3:
.box {
background: linear-gradient(-135deg, #f00 30px, #fff 30px, #162e48 32px);
color: #fff;
padding: 12px 24px;
}
<script>
function setTab(cursel,n){
for(i=1;i<=n;i++){
var menu=document.getElementById("tab_"+i);
var con=document.getElementById("con_"+i);
menu.className=i==cursel?"hover":"";
con.style.display=i==cursel?"block":"none";
}
}
</script>
<div id="tab">
<div class="Menubox">
<ul>
<li id="tab_1" class="hover" onclick="setTab(1,4)">明星</li>
<li id="tab_2" onclick="setTab(2,4)">搞笑</li>
<li id="tab_3" onclick="setTab(3,4)">美女</li>
<li id="tab_4" onclick="setTab(4,4)">攝影</li>
</ul>
</div>
<div class="Contentbox">
<div id="con_1" class="hover" ><img src="images/1.png" /></div>
<div id="con_2" class="hide"><img src="images/2.png" /></div>
<div id="con_3" class="hide"><img src="images/3.png" /></div>
<div id="con_4" class="hide"><img src="images/4.png" /></div>
</div>
</div>
</body>
CSS3:
tbody tr:nth-child(2n) {
background-color: #f5fafe;
}
圓角表格的CSS3:
.bordered tr:last-child td:last-child {
-moz-border-radius: 0 0 6px 0;
-webkit-border-radius: 0 0 6px 0;
border-radius: 0 0 6px 0;
}
單線表格的CSS3:
table {
*border-collapse: collapse; /* IE7 and lower */
border-spacing: 0;
width: 100%;
}
設計圖片翹邊陰影效果:
CSS3:
.box {
width: 980px;
clear: both;
overflow: hidden;
height: auto;
margin: 20px auto;
}
.box li {
background: #fff;
float: left;
position: relative;
margin: 20px 10px;
border: 2px solid #efefef;
-webkit-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 4px rgba(0,0,0,0.1) inset;
-moz-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 4px rgba(0,0,0,0.1) inset;
-o-box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 4px rgba(0,0,0,0.1) inset;
box-shadow: 0 1px 4px rgba(0,0,0,0.27), 0 0 4px rgba(0,0,0,0.1) inset;
}
.box li img {
width: 290px;
height: 200px;
margin: 5px;
}
.box li:before {
content: "";
position: absolute;
width: 90%;
height: 80%;
bottom: 13px;
left: 21px;
background: transparent; /*透明背景*/
z-index: -2; /*顯示在照片的下面*/
box-shadow: 0 8px 20px rgba(0,0,0,0.8); /*添加陰影*/
-webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.8);
-o-box-shadow: 0 8px 20px rgba(0,0,0,0.8);
-moz-box-shadow: 0 8px 20px rgba(0,0,0,0.8);
transform: skew(-12deg) rotate(-6deg); /*變形并旋轉陰影,讓其翹起*/
-webkit-transform: skew(-12deg) rotate(-6deg);
-moz-transform: skew(-12deg) rotate(-6deg);
-os-transform: skew(-12deg) rotate(-6deg);
-o-transform: skew(-12deg) rotate(-6deg);
}
.box li:after { /*在左側添加翹邊陰影*/
content: "";
position: absolute;
width: 90%;
height: 80%;
bottom: 13px;
right: 21px;
z-index: -2;
background: transparent;
box-shadow: 0 8px 20px rgba(0,0,0,0.8);
transform: skew(12deg) rotate(6deg);
-webkit-transform: skew(12deg) rotate(6deg);
-moz-transform: skew(12deg) rotate(6deg);
-os-transform: skew(12deg) rotate(6deg);
-o-transform: skew(12deg) rotate(6deg);
}
<ul class="box">
<li><img src="images/1.jpg" /></li>
<li><img src="images/2.jpg" /></li>
<li><img src="images/3.jpg" /></li>
</ul>
ref
《HTML5+CSS3+JavaScript從入門到精通(實例版)》
-End-
*請認真填寫需求信息,我們會在24小時內與您取得聯系。