Wed掌握<img>图片标签:从alt到border的使用技巧

AI的出现,是否能替代IT从业者? 10w+人浏览 954人参与

前面我们只是简单了解一下<img>图片标签的使用,针对图片路径(src属性)进行了简单练习

下面的练习将会进一步对图片标签的其他属性进行了解

alt属性:替换文本

当无法正常显示文本内容时,可通过alt属性提供替代文本提示。

下面代码展示的是图片路径正常的效果:只能看到图片,不能看到文字

 <!-- 简单了解图片标签其他属性 -->
    <!-- 1.alt属性:替换文本 -->
    <!-- 下面将演示,图片正常显示的效果 -->
    <img src = "测试图片标签2.jpg" alt = "这是一张普通的图片">

注意:复制前面代码的时候,图片路径修改成自己目录里面存在的,且路径格式正确。

展示一下正确的图片路径会出现的效果:会发现图片正常显示,但是没有发现有文字出现。

如果输入的图片路径是错误或者图片不存在的情况会怎样呢?

下面是错误路径的示范代码:

<!-- 这里我们演示一次,错误的图片地址 
         看看会出现什么情况
    -->
    <img src = ".../测试图片标签2.jpg" alt = "这是一张普通的图片">  

展示一下错误的图片路径会出现的效果:直接返回——alt属性输入的文本内容

title属性:提示文本

当鼠标悬停在文本上方时,稍等片刻便会弹出提示框,显示我们预先输入的文本内容

 <!-- 2.title属性:提示文本 -->
     <!-- 使用title属性可以输入描述图片的内容 -->
     <img src = "测试图片标签2.jpg" title = "帅气头像">

展示一下提示文本的效果:文本框一般都是出现在光标下方

width和height属性:控制元素尺寸

width属性定义元素的宽度,height属性定义元素的高度

下面代码直接可以看出width跟height对属性的影响

  <!-- 3.width属性:控制元素宽度
            height属性:控制元素高度 -->
    <img src = "测试图片标签2.jpg" >
    <img src = "测试图片标签2.jpg" width = "500px" >
    <img src = "测试图片标签2.jpg" height = "100px">
    <img src = "测试图片标签2.jpg" width = "20px" height="50px">

提示:px 是 pixel (像素)的缩写。

这里表示图片在屏幕上显示是为500个像素宽

width = "500px"

展示一下控制元素属性的效果:更高的像素数意味着更大的图像尺寸

border属性:设置边框

边框是围绕元素内容及内边距的线条,其样式(实线/虚线)、粗细、颜色等均由CSS属性控制。

HTML负责网页结构,CSS则专注于样式呈现

1.边框会有上边框、下边框、左边框、右边框,下面是各种边框表示方式:

如果统一设置样式可以使用  :border

上边框  :border-top

下边框  :border-bottom

左边框  :border-left

右边框  :border-right

2.边框样式有实线、虚线、点线,下面是各种样式表示方式:

实线  :solid

虚线  :dashed

点线  :dotted

3.边框支持颜色自定义,下面是两种设置颜色的方法:

  1. 使用十六进制色值(如 #00ff00)
  2. 直接输入颜色英文名称(如 "green")

下面代码是对于在<img>标签下简单使用border属性

   <!-- 4.broad属性:边框 -->
     <!-- 提到边框就要想到边框的宽度,边框的样式,边框的颜色 -->
      <!-- 下面例子展示上面提及的三种效果 -->


<img src ="project\测试图片标签.jpg" border = "30px">

<img src ="project\测试图片标签.jpg" border = "16px dotted red;">

<img src ="project\测试图片标签.jpg" style = "border :16px dotted red;">


边框属性使用效果展示:直接使用border属性无法单独设置边框样式和颜色。

需要通过搭配style属性才能实现边框样式和颜色的自定义设置。

为什么设置了样式后,图片的边框会呈现样式和颜色的变化?

正如之前所述,HTML负责构建网页的结构,而CSS则专门控制元素的样式表现。

在上面的代码示例"style = 'border :16px dotted red;'"中,我们看到的正是CSS的样式规则实现。

HTML仅提供简单的黑色实线边框样式,缺乏自定义样式和颜色的设置选项。

CSS规则简写    

border : 16px solid red;

以下是实现 border 属性扩展的代码:

  <!-- 4.broad属性:边框 -->
     <!-- 提到边框就要想到边框的宽度,边框的样式,边框的颜色 -->
      <!-- 下面例子展示上面提及的三种效果 -->
       <img src ="project\测试图片标签.jpg" class = "testborder">
       <style>
      .testborder{
        /* 测试样式:soild实线 dashed虚线 dotted点线 */
        /* 边框颜色选择使用border-color */
        border-top: 15px dashed;
        border-color: blue;
      }
    </style>

展示一下图片边框效果:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>University Professor Dashboard</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background-color: #f5f7fa; padding: 20px; color: #333; } .dashboard-container { max-width: 1200px; margin: 0 auto; } .dashboard-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; padding-bottom: 15px; border-bottom: 1px solid #ddd; } .dashboard-title { font-size: 24px; font-weight: 600; color: #2c3e50; } .filters { display: flex; gap: 15px; } .filter-item { padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; background: white; cursor: pointer; } .dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 20px; } .dashboard-card { background: white; border-radius: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); padding: 20px; display: flex; flex-direction: column; } .card-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; padding-bottom: 10px; border-bottom: 1px solid #eee; } .card-title { font-size: 18px; font-weight: 600; color: #2c3e50; } .card-more { color: #3498db; cursor: pointer; font-size: 14px; } .card-content { flex: 1; display: flex; flex-direction: column; gap: 15px; } .chart-container { height: 200px; background: #f8f9fa; border-radius: 4px; display: flex; align-items: center; justify-content: center; color: #7f8c8d; margin-bottom: 10px; } .data-table { width: 100%; border-collapse: collapse; } .data-table th, .data-table td { padding: 10px; text-align: left; border-bottom: 1px solid #eee; } .data-table th { font-weight: 600; color: #7f8c8d; font-size: 14px; } .status-indicator { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; } .status-good { background-color: #2ecc71; } .status-warning { background-color: #f39c12; } .status-bad { background-color: #e74c3c; } .task-list { list-style-type: none; } .task-item { padding: 10px 0; border-bottom: 1px solid #eee; display: flex; align-items: center; } .task-item:last-child { border-bottom: none; } .task-checkbox { margin-right: 10px; } .task-text { flex: 1; } .task-date { color: #7f8c8d; font-size: 14px; } .calendar-view { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; } .calendar-day { height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 4px; font-size: 14px; } .calendar-day.header { font-weight: 600; color: #7f8c8d; background: none; } .calendar-day.event { background: #e3f2fd; color: #1976d2; } .calendar-day.today { background: #1976d2; color: white; } .gauge-container { display: flex; justify-content: space-around; margin: 15px 0; } .gauge { text-align: center; } .gauge-circle { width: 80px; height: 40px; border-radius: 80px 80px 0 0; background: #e0e0e0; position: relative; overflow: hidden; margin: 0 auto 10px; } .gauge-fill { position: absolute; bottom: 0; width: 100%; background: #3498db; transition: height 0.5s; } .gauge-label { font-size: 14px; color: #7f8c8d; } @media (max-width: 768px) { .dashboard-grid { grid-template-columns: 1fr; } } </style> </head> <body> <div class="dashboard-container"> <div class="dashboard-header"> <div class="dashboard-title">Professor Dashboard</div> <div class="filters"> <div class="filter-item">This Semester</div> <div class="filter-item">This Month</div> <div class="filter-item">This Week</div> </div> </div> <div class="dashboard-grid"> <!-- Teaching Module --> <div class="dashboard-card"> <div class="card-header"> <div class="card-title">Teaching</div> <div class="card-more">View Details</div> </div> <div class="card-content"> <div class="chart-container"> Average Grades by Course (Bar Chart) </div> <div class="gauge-container"> <div class="gauge"> <div class="gauge-circle"> <div class="gauge-fill" style="height: 75%"></div> </div> <div class="gauge-label">Student Satisfaction</div> </div> <div class="gauge"> <div class="gauge-circle"> <div class="gauge-fill" style="height: 60%"></div> </div> <div class="gauge-label">Course Completion</div> </div> </div> <div> <h4>This Week's Classes</h4> <table class="data-table"> <tr> <th>Course</th> <th>Date/Time</th> <th>Location</th> </tr> <tr> <td>CS 101</td> <td>Mon, 10:00 AM</td> <td>Room 302</td> </tr> <tr> <td>DS 205</td> <td>Wed, 2:00 PM</td> <td>Lab 115</td> </tr> <tr> <td>CS 301</td> <td>Fri, 11:00 AM</td> <td>Room 410</td> </tr> </table> </div> </div> </div> <!-- Research Module --> <div class="dashboard-card"> <div class="card-header"> <div class="card-title">Research</div> <div class="card-more">View Details</div> </div> <div class="card-content"> <div class="chart-container"> Project Progress (Pie Chart) </div> <div class="chart-container" style="height: 150px;"> Research Funding Usage (Bar Chart) </div> <div> <h4>Recent Publications</h4> <table class="data-table"> <tr> <th>Paper Title</th> <th>Journal/Conference</th> <th>Status</th> </tr> <tr> <td>AI in Education</td> <td>Journal of EdTech</td> <td><span class="status-indicator status-good"></span>Published</td> </tr> <tr> <td>Data Visualization Methods</td> <td>Viz Conference</td> <td><span class="status-indicator status-warning"></span>Under Review</td> </tr> <tr> <td>Learning Analytics</td> <td>LAK Conference</td> <td><span class="status-indicator status-bad"></span>Revisions Needed</td> </tr> </table> </div> </div> </div> <!-- Student Supervision Module --> <div class="dashboard-card"> <div class="card-header"> <div class="card-title">Student Supervision</div> <div class="card-more">View Details</div> </div> <div class="card-content"> <div> <h4>Graduate Student Progress</h4> <table class="data-table"> <tr> <th>Student</th> <th>Thesis Topic</th> <th>Progress</th> <th>Status</th> </tr> <tr> <td>Alex Johnson</td> <td>ML in Healthcare</td> <td>85%</td> <td><span class="status-indicator status-good"></span>On Track</td> </tr> <tr> <td>Sam Davis</td> <td>Data Privacy</td> <td>60%</td> <td><span class="status-indicator status-warning"></span>Needs Attention</td> </tr> <tr> <td>Taylor Kim</td> <td>EdTech Tools</td> <td>45%</td> <td><span class="status-indicator status-bad"></span>Behind Schedule</td> </tr> </table> </div> <div> <h4>Upcoming Meetings</h4> <table class="data-table"> <tr> <th>Student</th> <th>Date/Time</th> <th>Purpose</th> </tr> <tr> <td>Alex Johnson</td> <td>Oct 15, 2:00 PM</td> <td>Thesis Draft Review</td> </tr> <tr> <td>Sam Davis</td> <td>Oct 16, 10:00 AM</td> <td>Research Problems</td> </tr> </table> </div> </div> </div> <!-- Administrative Module --> <div class="dashboard-card"> <div class="card-header"> <div class="card-title">Administrative</div> <div class="card-more">View Details</div> </div> <div class="card-content"> <div> <h4>Tasks To Do</h4> <ul class="task-list"> <li class="task-item"> <input type="checkbox" class="task-checkbox"> <div class="task-text">Submit grades for CS 101</div> <div class="task-date">Oct 20</div> </li> <li class="task-item"> <input type="checkbox" class="task-checkbox"> <div class="task-text">Review department budget</div> <div class="task-date">Oct 22</div> </li> <li class="task-item"> <input type="checkbox" class="task-checkbox"> <div class="task-text">Prepare faculty meeting presentation</div> <div class="task-date">Oct 25</div> </li> <li class="task-item"> <input type="checkbox" class="task-checkbox"> <div class="task-text">Submit research grant proposal</div> <div class="task-date">Nov 1</div> </li> </ul> </div> <div> <h4>Upcoming Meetings & Events</h4> <div class="calendar-view"> <div class="calendar-day header">S</div> <div class="calendar-day header">M</div> <div class="calendar-day header">T</div> <div class="calendar-day header">W</div> <div class="calendar-day header">T</div> <div class="calendar-day header">F</div> <div class="calendar-day header">S</div> <div class="calendar-day">1</div> <div class="calendar-day">2</div> <div class="calendar-day">3</div> <div class="calendar-day">4</div> <div class="calendar-day">5</div> <div class="calendar-day">6</div> <div class="calendar-day">7</div> <div class="calendar-day">8</div> <div class="calendar-day">9</div> <div class="calendar-day">10</div> <div class="calendar-day">11</div> <div class="calendar-day event">12</div> <div class="calendar-day">13</div> <div class="calendar-day">14</div> <div class="calendar-day">15</div> <div class="calendar-day event">16</div> <div class="calendar-day">17</div> <div class="calendar-day today">18</div> <div class="calendar-day">19</div> <div class="calendar-day event">20</div> <div class="calendar-day">21</div> </div> </div> </div> </div> </div> </div> </body> </html>
10-24
### 创建或优化课程时间表样式的解决方案 为了创建或优化一个HTML和CSS的课程时间表示例,可以遵循以下方法来实现清晰、美观的设计。 #### HTML 结构设计 HTML 是构建网页的基础,以下是适合课程时间表的一个基本结构: ```html <table> <thead> <tr> <th>时间</th> <th>星期一</th> <th>星期二</th> <th>星期三</th> <th>星期四</th> <th>星期五</th> </tr> </thead> <tbody> <tr> <td>9:00 - 10:30</td> <td>数学课</td> <td rowspan="2">英语课</td> <td></td> <td>物理课</td> <td>化学课</td> </tr> <tr> <td>10:45 - 12:15</td> <td>历史课</td> <td></td> <td>计算机科学</td> <td>体育课</td> </tr> <!-- 更多时间段 --> </tbody> </table> ``` 此代码片段展示了如何通过 `<table>` 元素及其子元素(`<thead>` 和 `<tbody>`)组织数据[^1]。表格头部 (`<thead>`) 定义列标题,而主体部分 (`<tbody>`) 则填充具体的数据项。 #### CSS 样式优化 对于样式设置,可以通过自定义选择器增强视觉效果并提高用户体验。下面是一些推荐的最佳实践以及对应的 CSS 片段: ```css /* 基础表格样式 */ table { width: 100%; border-collapse: collapse; } th, td { padding: 8px; text-align: center; border: 1px solid #ddd; } /* 高亮显示特定单元格 */ td.highlight { background-color: yellow; /* 使用黄色背景突出重要信息 */ } /* 行交替着色以改善可读性 */ tr:nth-child(even) { background-color: #f2f2f2; } ``` 这些规则利用了标准的选择机制[^3],其中 `nth-child()` 函数被用来区分奇偶行以便于阅读体验更好。另外,“highlight” 类可用于标记特别需要注意的内容。 关于性能方面考虑,如果网站访问量较大或者希望进一步减少首屏加载时间,则应采取措施如内联关键路径上的 CSS 并延迟非必要资源加载[^2]。 最终产品应该既满足功能性又兼顾美学原则,同时保持良好的浏览器兼容性和响应速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值