理解CSS【上】 | 青训营笔记

138 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 二 天

2. 理解CSS

2.1 CSS是什么?

image.png

image.png

2.2 在页面中使用CSS

        <!--外链-->
        <link rel="stylesheet" href="/assets/style.css">

        <!--嵌入-->
        <style>
            li{margin: 0; list-style: none;}
            p{margin: lem 0;}
        </style>

        <!--内联-->
        <p style="margin: lem 0;">Example Content</p>

2.3 CSS是如何工作的?

image.png

2.4 选择器 Selector

  • 找出页面中的元素,以便给他们设置样式
  • 使用多种方式选择元素
    • 按照标签名、类名、或id
    • 按照属性
    • 按照DOM树中的位置

2.4.1 通配选择器

<h1>This is heading</h1>
<p>this is some paragraph.</p>

<style>
* {
  color: red;
  font-size: 20px;
}
</style>

2.4.2 标签选择器

<h1>This is heading</h1>
<p>this is some paragraph.</p>

<style>
h1 {
  color: orange;
}
p {
  color: gray;
  font-size: 20px;
}
</style>

2.4.3 id选择器

<h1 id="logo">
  <img src="https://assets.codepen.io/59477/h5-logo.svg" alt="HTML5 logo" width="48" />
  HTML5 文档
<h1>

<style>
  #logo {
    font-size: 60px;
    font-weight: 200;
  }
</style>

2.4.4 类选择器

<h2>Todo List</h2>
<ul>
  <li class="done">Learn HTML</li>
  <li class="done">Learn CSS</li>
  <li>Learn JavaScript</li>
</ul>
<style>
.done {
  color: gray;
  text-decoration: line-through;
}
</style>

2.4.5 属性选择器

<label>用户名:</label>
<input value="zhao" disabled />

<label>密码:</label>
<input value="123456" type="password" />

<style>
  [disabled] {
    background: #eee;
    color: #999;
  }
</style>

<p>
  <label>密码:</label>
  <input type="password" value="123456" />
</p>

<style>
  input[type="password"] {
    border-color: red;
    color: red;
  }
</style>

2.5 伪类(pseudo-classes)

  • 不基于标签和属性定位元素
  • 几种伪类
    • 状态伪类
    • 结构性伪类
<a href="http://example.com">
  example.com
</a>

<label>
  用户名:
  <input type="text">
</label>
<!--链接自然状态下显示黑色-->
<style>
a:link {
  color: black;
}
<!--浏览后显示灰色-->
a:visited {
  color: gray;
}
<!--鼠标移动到显示橘色-->
a:hover {
  color: orange;
}
<!--点击时显示红色-->
a:active {
  color: red;
}

<!--CSS[伪类](https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-classes) `:focus`表示获得焦点的元素(如表单输入)。当用户点击或触摸元素或通过键盘的“tab”键选择它时会被触发。-->
:focus {
  outline: 2px solid orange;
}
</style>
<ol>
  <li>阿凡达</li>
  <li>泰坦尼克号</li>
  <li>星球大战:原力觉醒</li>
  <li>复仇者联盟 3</li>
  <li>侏罗纪世界</li>
</ol>

<style>
li {
  list-style-position: inside;
  border-bottom: 1px solid;
  padding: 0.5em
}

li:first-child {
  color: coral
}

li:last-child {
  border-bottom: none;
}
</style>
<label>
  用户名:
  <input class="error" value="aa">
</label>
<span class="error">
  最少3个字符
</span>

<style>
  .error {
    color: red;
  }
  
  input.error {
    border-color: red;
  }
</style>

2.6 组合

image.png

<article>
  <h1>拉森火山国家公园</h1>
  <p>拉森火山国家公园是位于...</p>
  <section>
    <h2>气候</h2>
    <p>因为拉森火山国家公园...</p>
    <p>高于这个高度,气候非常寒冷...</p>
  </section>
</article>

<style>
  article p {
    color: black;
  }

  article > p {
    color: blue;
  }

  h2 + p {
    color: red; 
  }
</style>

image.png

2.7 字体

<h1>卡尔斯巴德洞窟(Carlsbad Caverns)</h1>
<p>卡尔斯巴德洞窟(Carlsbad Caverns)是美国的
一座国家公园,位于新墨西哥州东南部。游客可以通过天
然入口徒步进入,也可以通过电梯直接到达230米的洞穴
深处。</p>

<style>
  h1 {
    font-family: Optima, Georgia, serif;
  }
  body {
    font-family: Helvetica, sans-serif;
  }
</style>

2.7.1 font-family 使用建议

  • 字体列表最后写上通用字体族
  • 英文字体放在中文字体前面

font-size

  • 关键字
    • small、medium、large
  • 长度
    • px、em
  • 百分数
    • 相对于父元素字体大小

image.png

text-align : left center right justify

spacing : letter-spacing(字间距),word-spacing(单词间距)

text-indent: 对其距离(0~200px)

text-decoration: none underline line-through(删除线) overline(上划线)

调试CSS:右键点击页面,选择【检查】