前端学习<二>CSS基础——09-CSS案例讲解:博雅互动

前言

CSS已经学了一些基础内容了,我们来讲解一个小案例吧。以博雅互动的官网首页举例。

版心

首页的版心如下:

这里我们要普及一个概念,叫“版心”。版心是页面中主要内容所在的区域。

比如说,网站左上角的logo,设计图给出的左边距是143像素,此时,我们千万不要以为,logo的左边距真的是143像素。因为设计图只是一个版心;而整个页面是处于浏览器的中间,浏览器的宽度是可以随时调整的。

我们量一下中间四个方形图的width,是1000px,所以,网页版心的宽度是1000px。

网页的结构

从结构上来看,网页分为头部(导航栏)、banner区、内容区、底部。

导航栏的制作

在此我们只讲基础知识的使用,不涉及浏览器的优化。

class==header这个div是顶部的通栏,我们在里面放一个1000px宽的div,作为通栏的版心,我一般把这个版心称为class=inner_c,c指的是center。

class=inner_c不需要给高,因为它可以被内容撑高。

现在我们需要在class=inner_c里放三个东西:左侧的logo、中间的导航栏、右侧的“加入我们”。

接下来我们开始做右侧的「加入我们」,「加入我们」的背景是带圆角的矩形,这个圆角,实现的方式有两种:要么切图,要么用CSS3实现(IE 7、IE 8不兼容)。我们暂时使用切图来实现。

我们最好把「加入我们」这个超链接<a>放到div里,然后设置div的margin和padding,而不是直接设置<a>的边距。

我们起个名字叫class=jrwm是没有问题的,这在工作当中很常见,如果写成class=join_us反倒很别扭。

暂时我们的做法是:

  • (1)给class=jrwm_box这个div里放一个class=jrwm的div。class=jrwm用来放绿色的背景图片。

  • (2)在class=jrwm里放一个超链接,并将超链接转为块级元素。

最终,导航栏的代码如下:

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Document</title>
     <style type="text/css">
         *{
             margin: 0px;
             padding: 0px;
         }
         body{
             font-size: 14px;
             font-family: "Microsoft YaHei","SimSun";
             height: 8888px;
         }
         .header{
             height: 58px;
             background-color: #191D3A;
         }
         /*版心*/
         .inner_c{
             width: 1000px;
             margin: 0 auto; /*让导航条、内容区域等部分的版心在父亲里居中*/
         }
         /*导航条的logo*/
         .header .logo{
             float: left;
             margin-right: 40px;
         }
         .header .nav{
             float: left;
         }
         .header .nav ul{
             list-style: none; /*去掉列表前面的圆点*/
         }
         .header .nav ul li{
             float: left;
             width: 100px;
             line-height: 58px; /*让行高等于这一行的高度,保证里面的文字垂直居中*/
             border-left: 1px solid #252947; /*每个li之间有间隔线*/
         }
         .header .nav ul li.last{
             border-right: 1px solid #252947;/*最后一个li的右边加间隔线*/
         }
         .header .nav ul li a{
             display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/
             height: 58px;
             text-decoration: none; /*去掉超链的下划线*/
             color:#818496;
             text-align: center;  /*让这个div内部的文本居中*/
         }
         .header .nav ul li a.current{
             color:white;
             background: #252947;
         }
         .header .nav ul li a:hover{
             color: white;
             background: #252947;
         }
 ​
         .header .jrwm_box{
             float: left;
             height: 58px;
             width: 100px;
             padding-left: 48px;
             padding-top: 12px;
 ​
         }
         /*放背景图片的div*/
         .header .jrwm_box .jrwm{
             height: 34px;
             background-image: url(images/jrwm.png);
             background-repeat: no-repeat;
             text-align: center; /*让这个div内部的超链接居中*/
         }
         .header .jrwm_box .jrwm a{
             display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/
             line-height: 34px; /*让行高为背景图片的高度,可以保证超链接的文字在背景图片里垂直居中*/
             text-decoration: none; /*去掉超链的下划线*/
             color: white;
         }
 ​
     </style>
 </head>
 <body>
     <div class="header">
         <div class="inner_c">
             <div class="logo">
                 <img src="images/logo.png " alt="">
             </div>
             <div class="nav">
                 <ul>
                     <li><a href="#" class="current">首页</a></li>
                     <li><a href="#">博雅游戏</a></li>
                     <li><a href="#">博雅新闻</a></li>
                     <li><a href="#">关于我们</a></li>
                     <li><a href="#">客服中心</a></li>
                     <li class="last"><a href="#">投资者关系</a></li>
                 </ul>
             </div>
             <div class="jrwm_box">
                 <div class="jrwm">
                     <a href="https://www.google.com/" target="_blank">加入我们</a>
                 </div>
             </div>
         </div>
     </div>
 </body>
 </html>

导航栏的效果如下:

banenr图

因为涉及到 js 的内容,这里先不讲内容区域轮播图的效果。

我们首先在导航条和banner图之间加一道墙,即class=cl,然后采用隔墙法对其设置clear: both;的属性。

然后设置banner的背景图片属性,添加banner图。

内容区域的制作

导航栏+banner+内容区域的完整代码如下:

 <!DOCTYPE html>
 <html lang="en">
 <head>
     <meta charset="UTF-8">
     <title>Document</title>
     <style type="text/css">
         *{
             margin: 0px;
             padding: 0px;
         }
 ​
         /*清除浮动的影响*/
         .cl{
             clear: both;
         }
         body{
             font-size: 14px;
             font-family: "Microsoft YaHei","SimSun";
             height: 8888px;
         }
         .header{
             height: 58px;
             background-color: #191D3A;
         }
         /*版心*/
         .inner_c{
             width: 1000px;
             margin: 0 auto; /*让导航条、内容区域等部分的版心在父亲里居中*/
         }
         /*导航条的logo*/
         .header .logo{
             float: left;
             margin-right: 40px;
         }
         .header .nav{
             float: left;
         }
         .header .nav ul{
             list-style: none; /*去掉列表前面的圆点*/
         }
         .header .nav ul li{
             float: left;
             width: 100px;
             line-height: 58px; /*让行高等于这一行的高度,保证里面的文字垂直居中*/
             border-left: 1px solid #252947; /*每个li之间有间隔线*/
         }
         .header .nav ul li.last{
             border-right: 1px solid #252947;/*最后一个li的右边加间隔线*/
         }
         .header .nav ul li a{
             display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/
             height: 58px;
             text-decoration: none; /*去掉超链的下划线*/
             color:#818496;
             text-align: center;  /*让这个div内部的文本居中*/
         }
         .header .nav ul li a.current{
             color:white;
             background: #252947;
         }
         .header .nav ul li a:hover{
             color: white;
             background: #252947;
         }
 ​
         .header .jrwm_box{
             float: left;
             height: 58px;
             width: 100px;
             padding-left: 48px;
             padding-top: 12px;
 ​
         }
         /*放背景图片的div*/
         .header .jrwm_box .jrwm{
             height: 34px;
             background-image: url(images/jrwm.png);
             background-repeat: no-repeat;
             text-align: center; /*让这个div内部的超链接居中*/
         }
         .header .jrwm_box .jrwm a{
             display: block; /*将超链接转为块儿,可以保证其霸占父亲的整行*/
             line-height: 34px; /*让行高为背景图片的高度,可以保证超链接的文字在背景图片里垂直居中*/
             text-decoration: none; /*去掉超链的下划线*/
             color: white;
         }
 ​
 ​
 ​
         .banner{
             height: 465px;
             background: url(images/banner.jpg) no-repeat center top;
         }
         .content{
             padding-top: 50px;
         }
         .content .product{
             height: 229px;
             border-bottom: 1px solid #DBE1E7;
         }
         .content .product ul{
             list-style: none;
         }
         .content .product ul li{
             float: left;
             width: 218px;
             margin-right: 43px;
         }
         .content .product ul li.last{
             margin-right: 0;
             width: 217px;
         }
         .content .product ul li img{
             width: 218px;
             height: 130px;
         }
         .content .product ul li.last img{
             width: 217px;
         }
 ​
         .content .product ul li h3{
             text-align: center;
             line-height: 38px;
             font-size: 14px;
             font-weight: bold;
         }
         .content .product ul li p.djbf{
             text-align: center;
             line-height: 16px;
         }
         .content .product ul li p.djbf a{
             font-size: 12px;
             color:#38B774;
             text-decoration: none;
             background:url(images/sanjiaoxing.png) no-repeat right 5px;
             padding-right: 12px;
         }
 ​
     </style>
 </head>
 <body>
     <div class="header">
         <div class="inner_c">
             <div class="logo">
                 <img src="images/logo.png " alt="">
             </div>
             <div class="nav">
                 <ul>
                     <li><a href="#" class="current">首页</a></li>
                     <li><a href="#">博雅游戏</a></li>
                     <li><a href="#">博雅新闻</a></li>
                     <li><a href="#">关于我们</a></li>
                     <li><a href="#">客服中心</a></li>
                     <li class="last"><a href="#">投资者关系</a></li>
                 </ul>
             </div>
             <div class="jrwm_box">
                 <div class="jrwm">
                     <a href="https://www.google.com/" target="_blank">加入我们</a>
                 </div>
             </div>
         </div>
     </div>
 ​
     <!-- 在导航条和banner之间隔一堵墙 -->
     <div class="cl"></div>
 ​
     <div class="banner"></div>
 ​
     <!-- 内容区域 -->
     <div class="content inner_c">
         <div class="product">
             <ul>
                 <li>
                     <p><img src="images/pro1.jpg" alt="" /></p>
                     <h3>BPT宣传片</h3>
                     <p class="djbf">
                         <a href="#">点击播放</a>
                     </p>
                 </li>
                 <li>
                     <p><img src="images/pro2.jpg" alt="" /></p>
                     <h3>BPT宣传片</h3>
                     <p class="djbf">
                         <a href="#">点击播放</a>
                     </p>
                 </li>
                 <li>
                     <p><img src="images/pro3.jpg" alt="" /></p>
                     <h3>BPT宣传片</h3>
                     <p class="djbf">
                         <a href="#">点击播放</a>
                     </p>
                 </li>
                 <li class="last">
                     <p><img src="images/pro4.jpg" alt="" /></p>
                     <h3>BPT宣传片</h3>
                     <p class="djbf">
                         <a href="#">点击播放</a>
                     </p>
                 </li>
             </ul>
         </div>
     </div>
 </body>
 </html>

代码解释:

(1)导航栏,左侧的logo:

错误的写法:

可能会有人直接将img标签作为logo的布局:

     <div class="logo">
         <img src="images/logo.png " alt="">
     </div>

然后将img的样式设置为:

     .header .logo{
         float: left;
         margin-right: 40px;
     }

这样写虽然视觉效果上达到了,但是搜索引擎是搜不到图片的,不利于SEO。

正确的写法:

正确的写法是将超链接作为logo的布局,里面放入文字(文字可以被SEO):

             <h1 class="logo">
                 <a href="#">
                     博雅互动-世界上最好的游戏公司
                 </a>
             </h1>

然后将logo设置为背景图

         .header .logo{
             float: left;
             padding-left: 12px;
             margin-right: 39px;
             width: 174px;
             height: 58px;
         }
         .header .logo a{
             display: block;
             width: 174px;
             height: 58px;
             background:url(images/logo.png) no-repeat;
             text-indent: -999em;
         }
 ​

由于搜索引擎是搜不到图片的,所以一定要把“博雅互动”这几个文字加上去,然后通过text-indent缩进的属性把文字赶走到视线以外的地方。这是做搜索引擎优化的一个重要的技巧。

另外,背景要放在里层的a标签里,不要放在外层的h1标签里。假设背景图放在h1里,那么不管h1的padding有多大,背景图的位置都不会变。

(1)内容区域,“点击播放”右侧的小三角形:

我们在“点击播放”的右侧放了一个三角形。这个很有技巧。

代码截取如下:

     .content .product ul li p.djbf a{
         font-size: 12px;
         color:#38B774;
         text-decoration: none;
         background:url(images/sanjiaoxing.png) no-repeat right center;
         padding-right: 12px;
     }

上方代码中,我们在第6行给“点击播放”这个超链接加一个右padding(很关键),然后在第5行把小三角这个背景图放在右padding的位置,就能达到想要的视觉效果。

(2)导航栏+banner+内容区域的效果如下:

工程文件:2018-03-20-boya.rar

写在最后:希望大家可以点个关注点个赞,这对up真的很重要!谢谢!

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/498998.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

IDEA2021.1.2破解无限试用30天破解IDEA

安装包下载 IDEA安装包&#xff1a;Other Versions - IntelliJ IDEA破解包下载&#xff1a;文件 密码:c033 开始激活 IDEA 2021.1.3 运行, 中间会先弹出一个注册框&#xff0c;我们勾选 Evaluate for free, 点击 Evaluate&#xff0c; 先试用30天: 注意&#xff0c;如果没有…

Tomcat项目创建 以及 在IDEA当中集成Tomcat

一: 有关Tomcat的WEB项目创建 TOMCAT项目的创建有两种方式, 第一种是利用骨架进行创建, 第二种是利用填补进行相应的创建, 不适用骨架进行创建 ,在这里主要聊第二种 (使用IDEA版本为2023) 1. 创建MAVEN项目, 非骨架形式 2.在相应的pom文件当中设置打包方式 为 war包的打包形…

LeetCode:70爬楼梯 C语言

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 2. 2 阶 示例 2&#x…

敏捷教练CSM认证考了有没有用,谁说了算?

敏捷教练CSM证书是近年来备受关注的一项证书&#xff0c;它被认为可以提升敏捷开发团队的管理能力和项目执行效率。然而&#xff0c;对于这个证书的价值和含金量&#xff0c;人们的观点却不尽相同。那么&#xff0c;CSM证书到底有没有用&#xff0c;谁来说了算呢&#xff1f; 首…

java调用百度AI识别身份证照片获取信息

java调用百度AI识别身份证照片获取信息 一、前期准备1、创建账号2、获得API Key 和Secret Key 二、使用步骤1、依赖2、代码 一、前期准备 1、创建账号 2、获得API Key 和Secret Key 二、使用步骤 http调用工具用了hutool工具库 1、依赖 <!--百度身份证识别AI依赖-->&l…

论文阅读-Policy Optimization for Continuous Reinforcement Learning

摘要 我们研究了连续时间和空间环境下的强化学习( RL )&#xff0c;其目标是一个具有折扣的无限时域&#xff0c;其动力学由一个随机微分方程驱动。基于连续RL方法的最新进展&#xff0c;我们提出了占用时间(专门针对一个折现目标)的概念&#xff0c;并展示了如何有效地利用它…

qt学习第三天,qt设计师的第一个简单案例

3月25&#xff0c;应用qt设计师&#xff0c;手动设计界面形状 ​ 如何启动qt设计师&#xff0c;找到对应的安装地点&#xff0c;对应你自己安装的pyside6或其他qt的安装路径来找 ​ 应用qt设计师的优点是不用敲代码然后慢慢调节框框大小&#xff0c;位置等、可以直接修改…

知识图谱构建三要素:实体、关系与属性技术与实战全解析

目录 一、知识图谱三要素简介实体&#xff08;Entity&#xff09;的重要性关系&#xff08;Relationship&#xff09;的作用属性&#xff08;Attribute&#xff09;的应用 二、实体&#xff08;Entity&#xff09;理论介绍实体的概念细节实体的分类实体识别的技术细节实体识别的…

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程

1.Mysql基础入门—MySQL-mysql 8.0.11安装教程 摘要个人简介下载Mysql安装Mysql配置环境变量 摘要 MySQL 8.0.11的安装过程涉及几个关键步骤&#xff0c;首先访问MySQL官方网站下载页面&#xff0c;选择操作系统相对应的MySQL版本进行下载。对于Windows用户&#xff0c;启动下…

读写锁 应用/原理

一、ReentrantReadWriteLock 让 读-读 操作可并发&#xff0c;写-写、写-读、读-写不可并发 (一)、基本使用 class DataContainer {private Object data;private ReentrantReadWriteLock rw new ReentrantReadWriteLock();private ReentrantReadWriteLock.ReadLock r rw.r…

Qt扫盲-QAssisant 集成其他qch帮助文档

QAssisant 集成其他qch帮助文档 一、概述二、Cmake qch例子1. 下载 Cmake.qch2. 添加qch1. 直接放置于Qt 帮助的目录下2. 在 QAssisant中添加 一、概述 QAssisant是一个很好的帮助文档&#xff0c;他提供了供我们在外部添加新的 qch帮助文档的功能接口&#xff0c;一般有两中添…

软件开发订制:使用LabVIEW软件的10大理由

1.通过软件增加处理能力及灵活性   使用基于计算机进行数据采集设备的最大优势之一是您可以使用软件来定制您的测试系统的功能和可视化特性&#xff0c;以满足您的应用需求。人工测试代价高&#xff0c;速度慢&#xff0c;且容易出错&#xff0c;而基于软件定义的系统可以更快…

景联文科技高质量大模型训练数据汇总!

3月25日&#xff0c;2024年中国发展高层论坛年会上&#xff0c;国家数据局局长刘烈宏在“释放数据要素价值&#xff0c;助力可持续发展”的演讲中表示&#xff0c;中国10亿参数规模以上的大模型数量已超100个。 当前&#xff0c;国内AI大模型发展仍面临诸多困境。其中&#xff…

ctf-36C3解析

一、环境 unbentu 这道题给了docker环境&#xff0c;gethub上面自己找 一个好用的linux全局切换梯子proxychains 二、开始解析 2.1初始 2.2编译 docker build . 2.3代理设置完毕 我试了一下代理还是不行&#xff0c;我们换源尝试一下 RUN sed -i s/deb.debian.org/mirro…

MYSQL数字函数实操宝典:场景化SQL语句一网打尽

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 MYSQL数字函数&#xff1a;不可不知的数据处理利器 文章目录 Part 1: 准备 &#x…

基于STM32C8T6的智能蓝牙小车控制设计

**单片机设计介绍&#xff0c;基于STM32C8T6的智能蓝牙小车控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于STM32C8T6的智能蓝牙小车控制设计是一个综合了硬件与软件设计的项目&#xff0c;旨在实现小车的智能控制、…

如何使用固定公网地址远程连接Python编译器并将运行结果返回到Pycharm

文章目录 一、前期准备1. 检查IDE版本是否支持2. 服务器需要开通SSH服务 二、Pycharm本地链接服务器测试1. 配置服务器python解释器 三、使用内网穿透实现异地链接服务器开发1. 服务器安装Cpolar2. 创建远程连接公网地址 四、使用固定TCP地址远程开发 本文主要介绍如何使用Pych…

K8S Pod状态为“被驱逐(evicted)”的解决方法

文章目录 驱逐原因问题复现解决方案 在Kubernetes中&#xff0c;pod是最小的调度单元。当Pod无法在所分配的节点上正常运行时&#xff0c;它可能会被驱逐(evicted)。这种情况可能是由多种原因引起&#xff0c;比如节点资源不足、Pod超出了所分配的资源限制、镜像拉取失败等。 …

哈希表(hash_table) 哈希存储 算法相关知识 稳定性 时间复杂度

哈希存储(散列存储) 为了快速定位数据 哈希表 哈希冲突 / 哈希矛盾 关键字不一样&#xff0c;但是映射之后结果一样 如何避免 哈希矛盾&#xff1f; 1、重新设计哈希函数&#xff0c;尽可能均匀散列分布在哈希表 2、开放定址法&#xff1a;向下寻找未存储的位置进行存放数…

《Invariant Feature Learning for Generalized Long-Tailed Classification》阅读笔记

论文标题 《Invariant Feature Learning for Generalized Long-Tailed Classification》 广义长尾分类的不变特征学习 作者 Kaihua Tang、Mingyuan Tao、Jiaxin Qi、Zhenguang Liu 和 Hanwang Zhang 来自南洋理工大学、阿里达摩院和浙江大学 初读 摘要 属性不平衡&#…