样式化链接—CSS学习笔记

108 阅读3分钟

样式化链接—CSS学习笔记

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情


前言

在网页中,链接也是一个非常重要的元素,往往用来跳转到另一个页面。所以链接的样式就得和其他普通的文字等区分开,以表示其是链接可点击跳转。接下来我们先看一下链接的几种状态以便我们样式化。

样式化链接

在样式化链接前,我们需要知道链接有五种状态,链接的每种状态都对应一个伪类。

链接的状态

  • 未访问状态:a:link,这是链接未访问时也就是默认的状态。
  • 已访问状态:a:visited,这是链接访问过后的状态
  • 鼠标悬浮状态:a:hover,当用户鼠标刚好停留在链接上时
  • 选中状态:a:focus,一个链接当它被选中的时候 (比如通过键盘的 Tab 移动到这个链接的时候
  • 激活状态:a:active,一个链接当它被激活的时候(比如鼠标点击)

默认的样式

链接在浏览器中有默认的表现形式。下面我们通过一个例子来看看。

image.png

我们观察一下,发现有以下形式

  • 未访问链接颜色为蓝色,访问过变紫色
  • 链接具有下划线
  • 鼠标悬停时光标由指针变小手
  • 激活时链接颜色变红

将样式应用到链接

接下来我们开始样式化链接,先写出我们的空规则集

a {
​
}
​
a:link {
​
}
​
a:visited {
​
}
​
a:focus {
​
}
​
a:hover {
​
}
​
a:active {
​
}

这几个规则的顺序是有意义的,因为链接的样式是建立在另一个样式之上的,比如,第一个规则的样式也会在后面的规则中生效,一个链接被激活 (activated) 的时候,它也是处于悬停 (hover) 状态的。如果你搞错了顺序,那么就可能不会产生正确的效果。要记住这个顺序,你可以尝试这样帮助记忆:LoVe Fears HAte.

接下来我们开始样式化,通常链接会在两个位置使用到,一个是段落中的链接,还有就是导航栏中的链接

段落中的链接

<p>
    欢迎访问<a href="#">我的网站</a>,想要了解更多信息,请联系邮箱<a href="#">123456@email.com</a>或电话
    <a href="#">00000000</a>
</p>
a {
    padding: 5px;
    text-decoration: none;
    outline: none;
}
​
a:link {
    color: blue;
}
​
a:visited {
    color: purple;
}
​
a:focus,
a:hover {
    /* border-bottom: 1px solid; */
    text-decoration: underline;
}
​
a:active {
    color: red;
}

这里padding是为了与普通文本拉开距离,text-decoration是在未访问时不显示下划线。

效果:

image.png

导航栏中的链接

<ul>
    <li><a href="#">Home</a></li>
    <li><a href="#">Books</a></li>
    <li><a href="#">Category</a></li>
    <li><a href="#">Goods</a></li>
    <li><a href="#">Information</a></li>
</ul>
ul {
    padding: 0;
    width: 100%;
}
​
li {
    display: inline;
}
​
a {
    outline: none;
    text-decoration: none;
    display: inline-block;
    width: 19%;
    margin-right: 0.625%;
    text-align: center;
    line-height: 50px;
    color: white;
}
​
li:last-child a {
    margin-right: 0;
}
​
a:link,
a:visited,
a:focus {
    background: darkblue;
}
​
a:hover {
    background: #333333;
}
​
a:active {
    background: #333333;
    color: yellowgreen;
}

在导航栏中就不显示下划线,且以行内块元素排列。

效果:

image-20220822093511563.png