CSS代码
body { background-image: url(https://cdn.freecodecamp.org/curriculum/css-cafe/beans.jpg); /* 引入背景 */ font-family: sans-serif; /* 指定元素中文本的字体样式 */ padding: 20px; /* 内边距设置为20px */ } h1 { font-size: 40px; /* 文本字体大小 */ margin-top: 0; /* 外边距 */ margin-bottom: 15px; } h2 { font-size: 30px; } .established { font-style: italic; /* 字体风格 */ } h1, h2, p { text-align: center; /* 字体位置 */ } .menu { width: 80%; background-color: burlywood; margin-left: auto; margin-right: auto; padding: 20px; max-width: 500px; /* 设置该元素的最大像素(大小) */ } img { display: block; /* 将内联元素变成块级元素就可以设置外边距这些东西了 */ margin-left: auto; margin-right: auto; } hr { height: 2px; background-color: brown; border-color: brown; } .bottom-line { margin-top: 25px; } h1, h2 { font-family: Impact, serif; /* 字体堆栈 */ } .item p { /*针对所有嵌套在类名为 item 的元素中的 p 元素*/ display: inline-block; margin-top: 5px; margin-bottom: 5px; font-size: 18px; } .flavor, .dessert { text-align: left; width: 75%; } .price { text-align: right; width: 25%; } /* FOOTER */ footer { font-size: 14px; } .address { margin-bottom: 5px; } a { color: black; } a:visited { /*伪类*/ color: black; } /* 设置连接还没有点击前的状态颜色 */ a:hover { color: brown; } /* 设置鼠标放在连接上显示的颜色 */ a:active { color: brown; } /* 设置连接点击后显示的颜色 */
复制
h5代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Cafe Menu</title> <link href="./style.css" rel="stylesheet"/> <!-- 引用CSS文件 --> </head> <body> <div class="menu"> <main> <h1>CAMPER CAFE</h1> <p class="established">Est. 2020</p> <hr> <!--hr是HTML的水平标签是一个自闭合的标签--> <section> <h2>Coffee</h2> <img src="https://cdn.freecodecamp.org/curriculum/css-cafe/coffee.jpg" alt="coffee icon"/> <article class="item"> <p class="flavor">French Vanilla</p><p class="price">3.00</p> </article> <article class="item"> <p class="flavor">Caramel Macchiato</p><p class="price">3.75</p> </article> <article class="item"> <p class="flavor">Pumpkin Spice</p><p class="price">3.50</p> </article> <article class="item"> <p class="flavor">Hazelnut</p><p class="price">4.00</p> </article> <article class="item"> <p class="flavor">Mocha</p><p class="price">4.50</p> </article> </section> <section> <h2>Desserts</h2> <img src="https://cdn.freecodecamp.org/curriculum/css-cafe/pie.jpg" alt="pie icon"/> <article class="item"> <p class="dessert">Donut</p><p class="price">1.50</p> </article> <article class="item"> <p class="dessert">Cherry Pie</p><p class="price">2.75</p> </article> <article class="item"> <p class="dessert">Cheesecake</p><p class="price">3.00</p> </article> <article class="item"> <p class="dessert">Cinnamon Roll</p><p class="price">2.50</p> </article> </section> </main> <hr class="bottom-line"> <footer> <p> <a href="https://www.freecodecamp.org" target="_blank">Visit our website</a> </p> <p class="address">123 Free Code Camp Drive</p> </footer> </div> </body> </html>
复制
结果图
知识点:
一、字体样式font-family:可以是具体的字体名称也可以是通用字体族分类
字体族:
serif
:衬线字体,如 Times New Roman、Georgia。sans-serif
:无衬线字体,如 Arial、Helvetica。monospace
:等宽字体,如 Courier New、Consolas。cursive
:草书风格字体,如 Comic Sans MS。fantasy
:装饰性字体,如 Impact。
字体堆栈:你还可以指定一系列字体族作为备用,以便在指定的字体不可用时,浏览器可以依次使用备用字体
eg:font-family: "Arial", "Helvetica", sans-serif;
引号:如果字体名称中包含空格或特殊字符,通常需要将其放在引号内,以确保浏览器正确解析
eg:font-family: "Times New Roman", serif;
二、CSS盒子模型
CSS盒子模型是网页布局的基础概念之一,用于描述HTML元素仔页面中所占的控件以及它们之间的关系。盒子模型由四个部分组成:内容区域(content)、内边距(padding)、边框(border)、外边距(margin)
-
内容区域(Content):内容区域是指元素内部实际包含内容的区域。它的大小由元素的宽度(width)和高度(height)属性决定。
-
内边距(Padding):内边距是内容区域与边框之间的空白区域。内边距可以使用
padding
属性来设置,可以分别设置上(padding-top)、右(padding-right)、下(padding-bottom)、左(padding-left)四个方向的内边距值,也可以同时设置四个方向的值。auto是 -
边框(Border):边框是围绕内容和内边距的线条或边界。边框的样式、颜色和宽度可以使用
border
属性来设置,也可以分别设置边框的样式、颜色和宽度。 eg:border:1px solid(实线) #000(颜色); border-radius: 5px; /* 边框圆角半径为5像素 */ -
外边距(Margin):外边距是元素与相邻元素之间的空白区域。外边距可以使用
margin
属性来设置,可以分别设置上、右、下、左四个方向的外边距值,也可以同时设置四个方向的值。eg:
margin-top: 5px; /* 顶部外边距为5像素 */
margin-right: 10px; /* 右侧外边距为10像素 */
margin-bottom: 15px; /* 底部外边距为15像素 */
margin-left: 20px; /* 左侧外边距为20像素 */
margin-left: auto; /* 左侧外边距自动调整,使元素水平居中 */
margin-right: auto; /* 右侧外边距自动调整,使元素水平居中 */
三、font-style:设置文本风格
- nomal:正常
- italic:斜体
- oblique:倾斜
四、伪类
在CSS中伪类(pseudo-class)是一种用于向元素的特定状态或位置应用样式的方法。它们允许你根据用户行为或元素的状态来选择元素,并为其应用特定的样式,而无需修改文档的HTML结果。
伪类通常以冒号‘:’开头,紧跟伪类的名称,放置在CSS选择器的末尾。它们可以用于选择某个元素的特定状态,比如鼠标悬停在元素上、元素被点击后的状态,或者元素被点击后的状态,或者是一个链接的情况
常见的伪类:
':hover':当用户将鼠标悬停在元素上应用的样式。
‘:active‘:当元素处于活动状态(被点击并按住鼠标)时应用的样式
’:focus‘:当元素获得焦点时应用的样式,比如通过键盘导航到以恶搞链接或表单元素时
’:first-chlid‘:选择第一个子元素
’:last-chlid':选择最后一个子元素
‘:nth-chlid':根据其父元素中的位置选择元素
':nth-of-type():根据元素在其父元素的类型和位置选择元素
‘:nth-last-child():从元素列表的末尾开始选择元素
’:nth-last-of-type()‘:从元素列表的末尾开始选择特定类型的元素
’:not()‘:排除特定选择器的元素,时选择器选择不匹配的元素。
’:checked()‘:用于选择已选中的复选框或单选按钮。
’:disabled‘:用于选择被禁用的表单元素
’:enable‘:用于选择可用的表单元素
’:empty‘:用于选择没有子元素的元素
“:target:“选择当前活动的目标元素,通常与锚点链接结合使用。
”:before“:在元素的内容前面插入内容
”:after“:在元素的内容后面插入内容,也用于添加仪式化的伪元素。