首页 > 其他分享 >第七章利用CSS和多媒体美化页面

第七章利用CSS和多媒体美化页面

时间:2024-10-26 16:47:55浏览次数:7  
标签:style 多媒体 color list 边框 列表 链接 CSS 页面

7.1 CSS链接的美化


7.1.1.文字链接的美化

基础概念

  • a:link:用于定义未访问过的链接。
  • a:visited:用于定义已经访问过的链接。
  • a:hover:当鼠标悬停在链接上时的状态。
  • a:active:当链接被点击但还未释放鼠标时的状态。

颜色和字体样式 我们可以通过设置color属性来改变链接的颜色,同时可以调整font-familyfont-size等属性来自定义文本的外观。

a:link {
  color: blue; /* 设置未访问链接的颜色 */
}
a:visited {
  color: purple; /* 设置已访问链接的颜色 */
}
a:hover {
  color: red; /* 设置鼠标悬停时链接的颜色 */
  text-decoration: underline; /* 鼠标悬停时添加下划线 */
}
a:active {
  color: green; /* 设置激活状态链接的颜色 */
}

去除默认下划线 默认情况下,浏览器会为超链接添加下划线。我们可以使用text-decoration: none;来移除它。

a:link, a:visited, a:hover, a:active {
  text-decoration: none;
}

过渡效果 为了使链接的变化看起来更加平滑,可以添加CSS过渡效果。

a {
  transition: color 0.3s ease-in-out;
}


7.1.2.按钮链接的美化

创建可点击的按钮效果 通过给链接添加适当的内边距(padding)、边框(border)和背景色(background-color),可以让链接看起来像是一个按钮。

.button-link {
  display: inline-block;
  padding: 10px 20px;
  background-color: #4CAF50; /* 绿色背景 */
  color: white; /* 白色文本 */
  border: 2px solid #4CAF50; /* 边框颜色 */
  border-radius: 5px; /* 圆角 */
  text-align: center;
  text-decoration: none;
  font-size: 16px;
}

.button-link:hover {
  background-color: #45a049; /* 更深的绿色背景 */
  border-color: #45a049; /* 边框颜色随背景变化 */
  cursor: pointer; /* 改变光标形状为手型 */
}

增强交互性

  • 使用:focus伪类来为获得焦点的链接添加样式,比如增加阴影或更改颜色。
  • 利用:active伪类模拟点击效果,如减少尺寸或改变背景颜色。
  • 可以加入动画效果,如旋转、放大等,以增加互动感。


7.1.3背景链接的美化

全背景覆盖 如果想让整个链接区域作为一个整体,并且应用统一的背景图像或颜色,可以通过以下方式实现:

.background-link {
  display: block;
  width: 200px;
  height: 50px;
  line-height: 50px; /* 垂直居中文本 */
  text-align: center;
  background: url('example-image.jpg') no-repeat center center / cover; /* 背景图片 */
  color: white; /* 文字颜色 */
  text-decoration: none;
  transition: transform 0.2s; /* 添加过渡效果 */
}

.background-link:hover {
  transform: scale(1.1); /* 放大效果 */
}

图标与文字结合 在链接旁边或内部添加图标,可以使链接更具表现力。例如,使用Font Awesome或其他图标库:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<a class="icon-link" href="#">
  <i class="fas fa-download"></i> 下载文件
</a>
.icon-link i {
  margin-right: 5px; /* 图标与文字间的间距 */
}
.icon-link:hover {
  color: gold; /* 鼠标悬停时的颜色 */
}


7.2 CSS列表的美化

在网页设计中,列表(包括无序列表<ul>和有序列表<ol>)是展示信息的一种常见方式。通过CSS,我们可以极大地提升这些列表的视觉吸引力,使它们更加符合网站的整体风格。以下是几个关键点来实现列表的美化:


7.2.1.列表项类型(list-style-type)

list-style-type属性允许你改变列表项前的标记样式。对于无序列表,常见的值包括disc(实心圆点)、circle(空心圆圈)和square(实心方块)。对于有序列表,可以使用decimal(数字)、lower-roman(小写罗马数字)、upper-roman(大写罗马数字)、lower-alpha(小写字母)和upper-alpha(大写字母)等。
ul {
  list-style-type: square; /* 使用实心方块 */
}

ol {
  list-style-type: lower-roman; /* 使用小写罗马数字 */
}


7.2.2.列表项图像(list-style-image)

你可以用自定义图片代替默认的列表项标记,这样可以让你的列表看起来更加独特。

ul {
  list-style-image: url('custom-bullet.png'); /* 使用自定义图像作为项目符号 */
}

需要注意的是,不同浏览器对list-style-image的支持可能存在差异。为了确保跨浏览器的一致性,有时可能需要结合其他技术如背景图像来达到相同效果。


7.2.3.列表项位置(list-style-position)

list-style-position属性用于控制列表项标记相对于文本的位置。可选值为inside(标记位于文本行内)和outside(标记位于文本外侧,默认值)。

ul.inside {
  list-style-position: inside;
}

ul.outside {
  list-style-position: outside;
}

当设置为inside时,列表项标记会成为内容的一部分,与文本同行显示;而outside则保持标记与文本分开,通常更适用于传统布局。


7.2.4.复合列表样式(list-style)

list-style是一个简写属性,它可以同时设置list-style-typelist-style-positionlist-style-image

ul.combined {
  list-style: square inside url('custom-bullet.png');
}

在这个例子中,我们同时设置了方形标记、内部定位以及一个自定义图像。


7.2.5.利用背景图像实现列表项标记

有时候直接使用list-style-image可能会遇到兼容性问题,或者想要更多的控制权,这时可以考虑使用背景图像结合伪元素来实现:

ul.custom-list {
  list-style: none; /* 去掉默认的列表项标记 */
  padding-left: 0; /* 移除默认左边距 */
}

ul.custom-list li {
  position: relative;
  padding-left: 20px; /* 给列表项添加左侧填充,为图标留出空间 */
}

ul.custom-list li::before {
  content: ''; /* 必须定义content属性,即使为空 */
  display: inline-block;
  width: 16px; /* 图标宽度 */
  height: 16px; /* 图标高度 */
  background: url('icon.png') no-repeat center center; /* 背景图像 */
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%); /* 垂直居中 */
}

这种方法提供了更高的灵活性,比如能够更容易地调整图标的大小、位置以及响应式行为。


7.3 CSS表格的美化

在网页设计中,表格(<table>)是组织和展示数据的重要元素。使用CSS可以显著提升表格的外观,使其更加美观且易于阅读。下面将介绍如何通过CSS来美化HTML表格,包括设置边框、合并边框、添加斑马线效果、调整宽度等。

7.3.1 表格边框

为表格及其内部的单元格设置统一的边框样式,可以使表格看起来更整洁。使用border属性可以定义边框的颜色、宽度及样式。

table, th, td {
  border: 1px solid black; /* 设置黑色实线边框 */
}

默认情况下,每个单元格都会有自己的边框,这会导致表格出现双层边框的效果。为了使边框看起来像单一线条,可以使用border-collapse属性,并将其值设为collapse

table {
  border-collapse: collapse; /* 合并相邻边框 */
}

7.3.2 表格宽度

有时你可能希望表格占据页面的全部宽度或特定的像素宽度。可以通过width属性来实现这一点。

table {
  width: 100%; /* 全宽表格 */
  /* 或者指定具体宽度,如:width: 800px; */
}

7.3.3 添加斑马线效果

斑马线效果即隔行变色,有助于提高表格的可读性。利用:nth-child伪类选择器,我们可以轻松地为奇数行和偶数行设置不同的背景颜色。

tr:nth-child(odd) { /* 奇数行 */
  background-color: #f2f2f2;
}

tr:nth-child(even) { /* 偶数行 */
  background-color: white;
}

7.3.4 鼠标悬停效果

为表格行添加鼠标悬停时的背景颜色变化,可以让用户更容易地追踪当前查看的数据行。

tr:hover { /* 当鼠标悬停在行上时 */
  background-color: #ddd;
}

7.3.5 使用<thead><tbody>, 和 <tfoot>

合理利用这些标签可以帮助更好地组织表格内容,并提供额外的CSS应用点。例如,可以给表头单独设定样式。


 

<table>
  <thead>
    <tr>
      <th>姓名</th>
      <th>年龄</th>
      <th>职业</th>
    </tr>
  </thead>
  <tbody>
    <!-- 数据行 -->
  </tbody>
  <tfoot>
    <tr>
      <td colspan="3">表格注释</td>
    </tr>
  </tfoot>
</table>
thead, tfoot {
  background-color: #333;
  color: white;
}

7.3.6 控制布局算法

通过table-layout属性,你可以控制浏览器用来计算列宽的方法。通常有两种值:auto(默认)和fixed。当设置为fixed时,所有列宽都基于第一行的内容确定,这样可以提高渲染性能,尤其是在大型表格中。

table {
  table-layout: fixed;
}

7.3.7 指定空白单元格的表现

使用empty-cells属性来决定是否显示空白单元格的边框。默认情况下,即使单元格为空,其边框也会被显示。

table {
  empty-cells: show; /* 显示空白单元格边框 */
  /* 或者:empty-cells: hide; 不显示空白单元格边框 */
}


7.4 多媒体的添加与美化

在网页设计中,多媒体内容如图片、视频和音频等能够极大地增强用户体验,使网站更加吸引人。合理地使用这些元素不仅可以让页面看起来更丰富多样,还能帮助更好地传达信息。接下来我们将探讨如何有效地添加和美化这些多媒体元素。

7.4.1 图片的添加与美化

1. 基本插入

  • 使用 <img> 标签可以将图片嵌入到HTML文档中。
<img src="image.jpg" alt="描述性文本">
  • src 属性指定图像文件的位置;alt 属性提供了图像无法显示时的替代文字,对于可访问性至关重要。

2. 使用 CSS 美化图片

  • 设置边框样式:给图片添加边框可以让其从背景中脱颖而出。
img {
  border: 5px solid #ccc;
}

圆角效果:利用 border-radius 可以为图片创建圆角效果。

img {
  border-radius: 8px;
}

阴影效果:通过 box-shadow 添加阴影,增加深度感。

img {
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}

3. 响应式图片

  • 使用百分比宽度确保图片随容器大小变化而调整
img {
  width: 100%;
  height: auto; /* 维持纵横比 */
}

4. 图像懒加载

  • 为提高页面加载速度,可以采用懒加载技术,即仅当用户滚动至接近图片位置时才开始加载图片。
<img src="placeholder.jpg" data-src="real-image.jpg" alt="...">

7.4.2 视频的添加与控制

1. HTML5 <video> 元素

  • HTML5 提供了内置支持来播放视频,无需依赖外部插件。
<video controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  您的浏览器不支持 video 标签。
</video>
  • controls 属性添加播放控件,包括播放/暂停按钮、进度条等。

2. 自定义样式

  • 通过 CSS 可以自定义播放器外观。
video {
  width: 100%; /* 宽度自适应 */
  max-width: 800px; /* 最大宽度限制 */
}

3. 响应式视频

  • 将视频置于具有固定比例(例如 16:9)的容器内,以保持正确的宽高比。
<div class="video-container">
  <video src="movie.mp4" controls></video>
</div>
.video-container {
  position: relative;
  padding-bottom: 56.25%; /* 16:9 的比率 */
  height: 0;
  overflow: hidden;
}
.video-container video {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

7.4.3 音频的添加与控制

1. HTML5 <audio> 元素

  • 同样地,HTML5 也支持直接播放音频文件。
<audio controls>
  <source src="sound.mp3" type="audio/mpeg">
  <source src="sound.ogg" type="audio/ogg">
  您的浏览器不支持 audio 标签。
</audio>

2. 调整样式

  • 通过 CSS 可以隐藏默认控件并实现个性化界面。
audio {
  display: none; /* 隐藏默认控件 */
}

3. JavaScript 控制

  • 利用JavaScript编写脚本来控制音频播放,比如自动播放或循环播放。
var audio = document.getElementById('myAudio');
audio.play(); // 开始播放
audio.loop = true; // 循环播放

7.4.4 确保跨设备兼容性和响应性

  • 媒体查询:使用CSS媒体查询根据屏幕尺寸调整多媒体元素的布局。

@media (max-width: 600px) {
  .responsive-media {
    width: 100%;
    height: auto;
  }
}
  • 格式支持:提供多种格式的视频和音频文件,以确保不同浏览器和设备的支持。

    • 对于视频:MP4, WebM, Ogg
    • 对于音频:MP3, Ogg, WAV


 

标签:style,多媒体,color,list,边框,列表,链接,CSS,页面
From: https://blog.csdn.net/2402_87161397/article/details/142681396

相关文章

  • 【移动应用开发】界面设计(二)实现水果列表页面
    续上一篇博客【移动应用开发】界面设计(一)实现登录页面-CSDN博客目录一、采用ViewBinding实现一个RecyclerView1.1在app/build.gradle中添加recyclerview依赖,并打开viewBinding(1)在app/build.gradle中添加依赖(2)在app/build.gradle中打开viewBinding功能(3)点击同步Sync,同......
  • 力扣练习1264.页面推荐
    1264.页面推荐一、题目链接二、题目描述三、建表语句四、题目解答1、思路讲解2、代码实现五、知识总结一、题目链接1264.页面推荐(需要会员)二、题目描述朋友关系列表:Friendship±--------------±--------+|ColumnName|Type|±--------------±--------+......
  • 倒计时功能实现:认识了css选择器 div[id^=“countdown-“]
    html倒计时<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>倒计时功能实现</ti......
  • CSS与HTML有什么区别
    CSS与HTML的区别:1.功能和职责的差异;2.语法的不同;3.应用场景的区别;4.页面加载和性能优化;5.响应式设计和移动端适配。CSS(层叠样式表)和HTML(超文本标记语言)是前端开发中两个关键的技术,它们分别负责页面的样式和结构。本文通过比较CSS和HTML的功能、语法、应用场景等方面,深入探讨......
  • CSS Grid与Flexbox有何不同
    CSSGrid与Flexbox的不同点:1.定位方式不同;2.维度不同;3.主轴与交叉轴不同;4.对齐方式不同;5.元素排序不同;6.应用场景不同;7.自适应性不同等。Flexbox(弹性盒子模型)主要用于一维布局,即在行或列的方向上布局,Grid(网格布局)适用于二维布局,可以同时定义行和列的结构。1.定位方式不......
  • 学习笔记(四):页面和自定义组件生命周期
    页面和组件的定义:自定义组件:@Component装饰的UI单元,可以组合多个系统组件实现UI的复用,可以调用组件的生命周期。页面:即应用的UI页面。可以由一个或者多个自定义组件组成,@Entry装饰的自定义组件为页面的入口组件,即页面的根节点,一个页面有且仅能有一个@Entry。只有被@Entry装饰的......
  • 构建更加丰富的页面 习题答案<HarmonyOS第一课>
    一、判断题1. Tabs组件可以通过接口传入一个TabsController,该TabsController可以控制Tabs组件进行页签切换。正确(True)错误(False)正确(True)回答正确2. WebviewController提供了变更Web组件显示内容的接口,例如可以使用loadData来加载一个网页链接地址改变Web组件的......
  • 从简单的页面开始<HarmonyOS第一课>
    一、判断题1. Button作为容器使用时可以通过添加子组件实现包含文字、图片等元素的按钮,其类型包括胶囊按钮、圆形按钮、普通按钮。正确(True)错误(False)正确(True)回答正确2. 对于包含文本元素的组件,如:Text、Span、Button、TextInput等,使用fontFamily设置字体时,参数......
  • vue-cli 跳转到页面指定位置
    原文关注公众号,后台里留言可进行提问,可在后台留言向作者提问解答问题!https://mp.weixin.qq.com/s?__biz=Mzg3NTAzMzAxNA==&mid=2247484254&idx=1&sn=361bbb2113be3eeda3802f0a805c5705&chksm=cec6fb87f9b1729174e3ae66bf9693207386256c964499c098fb8a6cc14b4ba266bc271073a3&tok......
  • 555.经典的三联书店网页 大学生期末大作业 Web前端网页制作 html+css+js
    目录一、网页概述二、网页文件 三、网页效果四、代码展示1.html2.CSS3.JS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这......