首页 前端知识 前端练习之CSS咖啡店menu (freecodecamp.org)

前端练习之CSS咖啡店menu (freecodecamp.org)

2024-05-05 12:05:43 前端知识 前端哥 904 272 我要收藏

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)

  1. 内容区域(Content):内容区域是指元素内部实际包含内容的区域。它的大小由元素的宽度(width)和高度(height)属性决定。

  2. 内边距(Padding):内边距是内容区域与边框之间的空白区域。内边距可以使用padding属性来设置,可以分别设置上(padding-top)、右(padding-right)、下(padding-bottom)、左(padding-left)四个方向的内边距值,也可以同时设置四个方向的值。auto是

  3. 边框(Border):边框是围绕内容和内边距的线条或边界。边框的样式、颜色和宽度可以使用border属性来设置,也可以分别设置边框的样式、颜色和宽度。                                           eg:border:1px solid(实线) #000(颜色);                                                                   border-radius: 5px; /* 边框圆角半径为5像素 */

  4. 外边距(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“:在元素的内容后面插入内容,也用于添加仪式化的伪元素。

转载请注明出处或者链接地址:https://www.qianduange.cn//article/6900.html
标签
评论
发布的文章

String转Json的几种方式

2024-05-09 11:05:04

iOS ------ JSONModel源码

2024-05-09 11:05:02

java去除 json 中的 \n, \t, \r

2024-05-09 11:05:57

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!