第一步:確定HTML 程式碼結構
在建立HTML 程式碼前,你應該先想它的結構。當你有一個好的模型時,應該第一時間把你想像的頁面結構或你的 CSS 模組及時地在紙上羅列出來。一個設計合理、結構良好的 HTML 頁面會讓你在接下來的工作過程中變的一異常輕鬆。
<a id="case-title" href=" http://www.loveo.cc/using-css-to-make-cards-ui.html"> 利用css制作卡片UI -- 墨丶水瓶 </a> <div class="card"> <a href="#."> <div class="card-image"> <img src="http://www.loveo.cc/wp-content/uploads/2017/02/card-image.jpg" alt="Orange" /> </div> <div class="card-body"> <div class="card-date"> <time> 20 Novembre 1992 </time> </div> <div class="card-title"> <h3> Lorem Ipsum </h3> </div> <div class="card-exceprt"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam voluptatibus autem consectetur voluptate facere at, omnis ab optio placeat officiis! Animi modi harum enim quia veniam consectetur unde autem inventore. </p> </div> </div> </a> </div>
第二步:定義 Css 規則
一旦確立了 Html 結構,接下來我們將開始為它編寫 Css 樣式。我將在下面分別貼出每一部分的 Css 程式碼。
.card
.card { width:400px; margin:0px auto; background-color:white; box-shadow:0px 5px 20px #999; } .card a { color:#333; text-decoration:none; } .card:hover .card-image img { width:160%; filter:grayscale(0); }
將 .card 設定為固定大小。
居中方式為 margin:0px auto;
為了在稍暗的背景中便於區分,將區塊元素設為白色。
增加了一個小陰影產生疊加效應。
定義元素 a 標籤的顏色與底線修飾。
定義滑鼠移上時放大元素並將濾鏡灰階設為「0」。
.card-image
.card-image { height:250px; position:relative; overflow:hidden; } .card-image img { width:150%; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); filter:grayscale(1); transition-property:filter width; transition-duration:.3s; transition-timing-function:ease; }
固定塊元素的大小,其中包含我們的圖片,這使我們能夠在滿足尺寸要求的情況下,任何圖片都可用於製作成卡片。
設定相對的定位方式,因為它裡麵包含了絕對定位的元素。
定義內容溢出元素框時裁切並隱藏。
我們可以根據需要在固定大小的100%基礎上增加圖像的預設大小,但不要添加小於400px的圖像,也不要忘記遵守其寬度/高度比,以免出現空白。
為了將影像在父元素中完全顯示及將 .card-image 的中心作為起點 ,我們需要同時設定定位方式為 absolute 。 top 、left 為50% , 然後能過 transform:translate(-50%, -50%) 設定位移,使 .card-image
的中心點作為起點 。
定義元素為 100% 灰階。
使元素在滑鼠移上時在300毫秒內慢速開始,然後變快,然後慢速結束的過渡方式放大。
.card-body
.card-body { text-align:center; padding: 15px 20px; box-sizing: border-box; }
定義 .card-bady 元素的文字對齊方式為居中對齊。
設定元素的內邊距。
元素 box-sizing 屬性值為 border-box。
字體及其他
.card-date { font-family: 'Source Sans Pro', sans-serif; } .card-title, .card-excerpt { font-family: 'Playfair Display', serif; } .card-date, .card-title { text-align:center; text-transform:uppercase; font-weight: bold; } .card-date, .card-excerpt { color: #777; }
推薦教學:《CSS教學》
以上是CSS3實現卡片效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!