超連結樣式 圖與字的調整 字在底圖的上面
當我想要做一個帶有圖片的超連結時,
一、首先我會先想到在inline element(行內元素)<h4>tag裡放上圖片如下
<!DOCTYPE html> <html> <head> <style> h4 { background: url("http://i.imgur.com/MFFSzOg.png") left center/ 300px 30px no-repeat; } </style> </head> <body> <h4>This is heading 4</h4> </body> </html>
指定該行h4文字範圍內,底圖位置水平靠左、垂直置中;底圖大小300px寬度、30px高度;圖片不重複。
但這方法變成圖片無法撐大,離我想要呈現的結果還差很遠。
二、再看另一種方式
使用虛擬類或元素來指定圖片與偏移位置
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS Bin</title> <style> .logo { width: 10em; margin: 1em auto; text-align: center; font: 1.75em/1.5em Helvetica; text-transform: uppercase; } /* Setup ribbons as pseudo-element backgrounds */ .logo::before, .logo::after { content: ""; height: 60px; display: block; background: url("http://i.imgur.com/MFFSzOg.png") center center; background-size: cover; } /* Flip our top ribbon upside-down */ .logo::before { -webkit-transform: rotate(180deg); -moz-transform: rotate(180deg); transform: rotate(180deg); } </style> </head> <body> <h1 class="logo"> Keep<br /> Calm<br /> and<br /> Stack<br /> Overflow </h1> </body> </html>
使用<h1>Tag配合Pseudo element ::after與 ::before來使用
這是利用Pseudo element來呈現另一種樣式,但不是我要的。
三、再看另一種方式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS Bin</title> <style> #container { height: 400px; width: 400px; position: relative; } #image { position: absolute; left: 0; top: 0; } #text { z-index: 100; position: absolute; color: white; font-size: 24px; font-weight: bold; left: 150px; top: 350px; } </style> </head> <body> <div id="container"> <img id="image" src="http://www.noao.edu/image_gallery/images/d4/androa.jpg" /> <p id="text"> Hello World! </p> </div> </body> </html>
於div裡面包含進圖片與文字,再對文字的顯現位置做調整。
四、於div裡面包含進圖片與文字,再對文字的顯現位置做調整,配何display屬性
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS Bin</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <style> a { position: relative; left: -250px; top: -20px; } #group > div { display: inline; } </style> </head> <body> <div id="group"> <div> <img id="image" src="http://www.fujen.com.tw/DB/UserFiles/image/title_8_5.jpg" /> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學1 </a> </div> <div> <img id="image" src="http://www.fujen.com.tw/DB/UserFiles/image/title_8_5.jpg" /> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學2 </a> </div> </div> <div id="group"> <div> <img id="image" src="http://www.fujen.com.tw/DB/UserFiles/image/title_8_5.jpg" /> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學1 </a> </div> <div> <img id="image" src="http://www.fujen.com.tw/DB/UserFiles/image/title_8_5.jpg" /> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學2 </a> </div> </div> </body> </html>
於div裡包入img與a Tag,但如何把中間與右邊的空白去掉呢?
2.現在又加入學第一種做法(background),
就是div裡不要放入img改於CSS裡對div使用background匯入圖片
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>JS Bin</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <style> #group > div { display: inline-block; width: 321px; height: 63px; background: url("http://www.fujen.com.tw/DB/UserFiles/image/title_8_5.jpg") no-repeat; } </style> </head> <body> <div id="group"> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學1 </a> </div> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學2 </a> </div> </div> <div id="group"> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學1 </a> </div> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學2 </a> </div> </div> </body> </html>
於div中指定寬與高撐大圖片,display指定inline-block做2*2排列。
3.又再加入學第二種做法使用Pseudo element
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>JS Bin</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <style> #group:before, #group:after { display: table; line-height: 0; content: ""; } #group:after { clear: both; } #group { *zoom: 1; } #group > div { float: left; width: 321px; height: 63px; background: url("http://www.fujen.com.tw/DB/UserFiles/image/title_8_5.jpg") no-repeat; } #group > div > a { position: relative; top: 20px; left: 70px; } </style> </head> <body> <div id="group"> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學1 </a> </div> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學2 </a> </div> </div> <div id="group"> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學1 </a> </div> <div> <a href="http://www.tmu.edu.tw/v3"> 台北醫學大學2 </a> </div> </div> </body> </html>
JS Bin
float使用left、clear both、*zoom*1 for IE
參考資料:
float:left; vs display:inline; vs display:inline-block; vs display:table-cell;