周报:浅谈对豆瓣网页实战的注意事项

制作整体网页时HTML代码和CSS代码的常用处理方法:

分开HTML代码和CSS代码,专门制作一个CSS文件专门来放置css代码,css文件里一般有作者样式(XXX.css)和通用样式(common.css)。这样会使代码更易维护,且整齐美观。

写代码前的注意事项:

写整体网页时,通常先构造网页结构,构造结构之前先将网页划分为几个部分,分步写HTML代码和css代码,注意观察每个部分的相似性,为同一个类名添加样式,之后遇到相似的样式时,直接引用类名即可,这样会大大缩减代码的长度。

例如,豆瓣网页整体内容宽度相同,且水平居中,这里只需设置一个类名container,为其设置同一样式,之后的每部分引用container即可。

.container{
    width: 950px;
    margin: 0 auto;
}
 <header class="header">
        <div class="container">
            <div class="logo">
 
            </div>
            <div class="search">
                
            </div>
            <div class="menu">
 
            </div>
        </div>
    </header>
    <!-- 宽度与container相同的元素 -->
    <div class="container"></div>

设置通用样式(common.css):

在实现代码的过程中,我们会重复性的使用一些特殊样式,比如左浮动右浮动,或者对雪碧图的同意设置等,可将他们均写在common.css中这样当其他网页也需用这些特殊样式时,直接引用css文件即可,当然每个网页中都会有该网页独特的重复的样式,这些样式可写在作者样式里,注意标注为首页通用样式,防止和该网页中其他部分css代码混淆。

/* 首页通用样式 */
.container{
    width: 950px;
    margin: 0 auto;
}
.float-left{
    float: left;
}
/* 首页通用样式结束 */

在网页中嵌入新的网页:

有时网页中某个区域在主页面上可使用,同时它也有自己的页面,这时就需要新制作一个网页,并用iframe元素将新网页嵌入到原网页中。

 

 <iframe class="float-right loginarea" src="./loginframe.html" frameborder="0"></iframe>

常见样式效果:

浮动盒子导致的高度坍塌解决方法:

.clearfix::after{
    content: "";
    display: block;
    clear: both;
}
/*注意将其设置在通用样式里*/

 给行盒设置宽高:

行盒不可改变宽高,要想让行盒的宽高生效,必须将其转化为块盒。

以下以a元素为例:


.header .logo a{
    width: 154px;
    height: 30px;
    display: block;
} 
 

隐藏文字:

1. 用span元素把文字包裹起来,设置span为display:none即可 

.header .logo a span{
    display: none;
}


2. 在这里,还有另一种巧妙的方法:不用设置span元素,设置a元素高度为0,接着设置其padding-top为适宜像素,此时文字会被挤下去,这时只要设置overflow为hidden即可。 

外边距合并问题:

1.创建BFC盒子

2. 设置header内边距
.header{

height: 90px;

padding-top: 30px;

box-sizing: border-box;

}

搜索框一般效果:输入文字后按回车页面会加载到另一个页面

做法有两种

1.通过JS代码实现
2.在input元素外面套一个form(表单元素),form里再加一个子元素button,button里又有i元素(图标)
这里的input元素记得按照要求定宽高

/* text为input的类名 */
.header .search .text{
    width: 240px;
    height: 20px;
    padding: 5px;
    font-size: 13px;
}
<form
    <input type="text">
    <button>
          <i class="iconfont icon-sousuoxiao"></i>
     </button>
 </form>


按回车键时,就相当于触发了按钮,提交数据

设置placeholder文字颜色:

/* 伪元素选择器,选中该属性里的内容 */
.header .search .text::placeholder{
    color: #ccc;
}

重置input,button样式:

input,button{
    border:none;
    outline:none;
    outline-offset:0;
}
button{
    background:initial;
}

 给背景图设置宽高的方法:

background: url(../imgs/搜索小.png) no-repeat left(或离左边的距离) top(或离上面的距离)/25px(宽) 25px(高);

将元素横向排列的方法:

1.浮动(记得清楚浮动)

2. 将元素变为行块盒

右边框不充满问题:

设置+86右边框时,注意观察,他的边框并未充满,这时只需要将高度减小,因为垂直居中,所以line-height也要相应减小,但定位top值就要变成减小的值/2.

container .login .form .form-item .country-code{
    position: absolute;
    width: 51px;
    /* 高度减小8px */
    height: 26px;
    left: 0;
    /* top增加为8/2=4(边框上下距离相等) */
    top: 4px;
    text-align: center;
    color: #333;
    font-weight: bold;
    /* 垂直居中,所以相应减小8px */
    line-height:26px;
    font-size: 15px;
    border-right: 1px solid #e4e6e5;
}

 首行缩进与padding区别:

在这里要注意,如果给文本框设置首行缩进的话,当输入文字过长时,就会出现以下效果:

故为+86腾出空间时,应使用padding-left 

背景颜色覆盖圆角边框问题 :

 

注意观察圆角边框附近背景颜色 ,背景颜色将圆角边框覆盖了,要解决这个问题,可以设置overflow:hidden,也可以为title设置圆角边框,在这里我们就设置溢出隐藏吧

 

解决边框重复问题:


只设置border-top,单独设置最后一个li元素的border-bottom,这里就要用到伪元素选择器

.container .login .form .form-item .country-code .choose-area .center ul li{
    height: 38px;
    line-height: 38px;
    border-top: 1px solid #e5e5e5;
    /* border-bottom: 1px solid #e5e5e5; */
   }
.container .login .form .form-item .country-code .choose-area .center ul li:last-child{
    border-bottom:1px solid #e5e5e5 ;
}

img为行盒,行盒的水平居中,设置其父元素text-align为center

 

设置鼠标悬浮样式(兄弟元素):

.container .change:hover+.pointer{

display: block;

}

设置悬浮时(父子关系)

用到的选择器:

.banner .container .slogan .download .qrcode:hover .qrcode-img{

display: block;

}

制作两栏或三栏布局:

网页中可能会有多个部分分左栏,右栏或主区域,设置其样式时将其设置为通用样式

<div class="aside-left">
    左边栏
 </div>
 <div class="aside-right">
     右边栏
 </div>
 <div class="main">
     主区域
  </div>
.aside-left{
    float: left;
    width: 100px;
    margin-right: 20px;
}
.aside-right{
    float: right;
    width: 265px;
    margin-left: 30px;
}
.main{
    /* 创建BFC,自适应,避开浮动盒子 */
    overflow: hidden;
}

 设置子元素除第一个之外的其他元素的样式:

除第一个之外的其他span元素,n从0开始 
.hot-list li .desc span:nth-child(n+2){

}

全英文换行效果:

如果全英文(无空格),则最终效果不会换行,故要给ul设置word-break:break-all(可在单词内部截断)

把图片按一定数量横向排列方法:

设置ul通用样式:给ul加上item-list类名,再统一设置

.item-list li{
    display: inline-block;
    vertical-align: top;
    line-height: 1.5;
}
.item-list li .img img{
    width: 100%;
    display: block;
}

根据页面主区域设置宽度,注意一定要将ul设置为行块盒

 图片横向排列时,去除每行末尾图片的margin-right :

/* 一行有三张图片,将每行最后一张图片右外边距设为0 */
.video-main li:nth-child(3n){
    margin: 0;
}

视频区域中图片上的播放图标设置:

设置图片区域的before,可以给伪元素选择器里添加字体图标,也可给内容区加上图片,设置插入播放图片的宽度和高度都撑满为了让插入的图片居中,则设置text-align和line-height即可;

.video-main .img::before{
    content: url(../imgs/24gl-playCircle.png);
    width: 100%;
    height: 100%;
    position: absolute;
    text-align: center;
    line-height: 500px;
    font-size: 30px;
}

菜单区域用a元素的常见问题

将a元素设置成块盒(为了使元素独占一行),但之前写过a元素的统一样式,鼠标悬浮在a元素上时会有背景颜色,此时会显现出这样的效果(a元素变为块盒引起的)

整个块盒背景颜色均变颜色,影响视觉效果,故这里最好用ul>li元素将a元素包起来,不将a元素设置为块盒,此时就可达到想要的效果

 <ul class="left-menu">
                        <li><a class="new" href="">影讯&购票</a></li>
                        <li><a href="">选电影</a></li>
                        <li><a href="">Lorem.</a></li>
                        <li><a href="">Dolores.</a></li>
                        <li><a href="">Quas.</a></li>
                        <li><a href="">Mollitia.</a></li>
                        <li><a href="">Quibusdam?</a></li>
                        <li><a href="">Amet.</a></li>
                        <li><a href="">Doloribus?</a></li>
                        <li><a href="">Architecto.</a></li>
                        <li><a href="">Atque.</a></li>
                    </ul>

 制作有序菜单:

首先先写ul>li,简单制作出其结构

               <ul class="order-movie-list">
                        <li>
                            <a href="">风中有朵雨做的云</a>
                        </li>
                        <li><a href="">飞驰人生</a></li>
                        <li><a href="">Lorem ipsum dolor sit.</a></li>
                        <li><a href="">Dolorum atque consequuntur architecto.</a></li>
                        <li><a href="">At laborum debitis asperiores?</a></li>
                        <li><a href="">Earum voluptates dolorem magnam.</a></li>
                        <li><a href="">Deserunt maxime totam corporis!</a></li>
                        <li><a href="">Maiores dolores saepe nulla.</a></li>
                        <li><a href="">A assumenda dolorum voluptas.</a></li>
                        <li><a href="">Ratione modi quod odit.</a></li>
                    </ul>

通过设置li元素样式制造出有序效果

.order-movie-list li{
    /* 使li元素又副盒子,盒子里装有序数字 */
    list-style-type: decimal;
    /* 副盒子位于li元素里面 */
    list-style-position: inside;
}

 名字过长处理方式 :

电影名字一般的处理方式是不换行+溢出隐藏+溢出用原点代替

movie-area .item-list li .words a{
    display: inline-block;
    max-width: 100%;
    /* 空白的处理方式是不换行 */
    white-space: nowrap;
    overflow: hidden;
    /* 溢出用原点代替 */
    text-overflow: ellipsis;
}

 设置分散对齐:

text-align:justify,给item-list添加伪元素,让伪元素独占一行,解决了justify不让最后一行分散对齐的问题

.group-area .main .item-list::after{
    content: "";
    display: inline-block;
    width: 100%;
}

阴影的设置:

 设置阴影用到了css3属性里的box-shadow,其速写属性的值:

 box-shadow:2px 2px 2px 0px rgba(0,0,0,.2);
    /* 横坐标偏移量,纵坐标偏移量 阴影模糊程度 阴影的扩散半径 阴影的颜色  */

 不用矢量坐标图用伪类选择器插入图片居中显示且添加阴影:

.music-area .music-player-list li .player .img{
    width: 48px;
    height: 48px;
    position: relative;
}
.music-area .music-player-list li .player .img img{
    /* 防止出现白边 */
    display: block;
    width: 100%;
    height: 100%;
}
.music-area .music-player-list li .player .img::before{
    display: none; 
    content: url(../imgs/播放2.png);
    position: absolute;
    width: 100%;
    height: 100%;
    text-align: center;
    line-height: 48px;
    margin: auto;
    background:rgba(0,0,0,.5);
    color: #fff;
}
.music-area .music-player-list li .player .img:hover:before{
    display: block;
}

 左右区域各占一半:

.footer .float-left,.footer .footer .right{
    /* 左浮动与右浮动各占一半 */
    width: 50%;
}

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

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

相关文章

用100ask 6ull配合 飞凌 elf1的教程进行学习的记录

启动方式 百问网 elf1: 固件 emmc-otg 串口 网络 改eth0, 网线接在右边的网口eth2上

51k+ Star!动画图解、一键运行的数据结构与算法教程!

大家好&#xff0c;我是 Java陈序员。 我们都知道&#xff0c;《数据结构与算法》 —— 是程序员的必修课。 无论是使用什么编程语音&#xff0c;亦或者是前后端开发&#xff0c;都需要修好《数据结构与算法》这门课&#xff01; 在各个互联网大产的面试中&#xff0c;对数据…

我们需要什么样的HA

作为DBA,大家在运维数据库的时候都会遇到 数据库发生 Failover /Switchover 切换的场景。数据库发生切换导致业务连续性受损&#xff0c;少则分钟级&#xff0c;多则小时级别。(最近互联网的故障比较多)。 本文 基于 MySQL 数据库架构场景来分析我们在遇到数据库 HA 切换时是系…

远程访问与设备重定向USB for Remote Desktop 官网

FabulaTech - USB over Network, USB for Remote Desktop, virtual COM ports FabulaTech.com - Downloads 另个软件-USB for Remote Desktop | 下载 USB over RDP app 用于远程桌面的 USB 在远程 Windows 会话中访问本地 USB 设备。 适用于 Windows 和 Linux 远程桌面。 下载…

python之logo编程

Logo标志是一种视觉符号&#xff0c;代表着一个品牌、企业或组织的形象。它通常采用图形、字母或字形来代表一个公司或品牌&#xff0c;起到对徽标拥有公司的识别和推广的作用。Logo的设计需要考虑多种因素&#xff0c;例如颜色搭配、字体选择和构图等&#xff0c;以创造出独特…

【深度优先】LeetCode1932:合并多棵二叉搜索树

作者推荐 动态规划LeetCode2552&#xff1a;优化了6版的1324模式 题目 给你 n 个 二叉搜索树的根节点 &#xff0c;存储在数组 trees 中&#xff08;下标从 0 开始&#xff09;&#xff0c;对应 n 棵不同的二叉搜索树。trees 中的每棵二叉搜索树 最多有 3 个节点 &#xff0…

程序猿无烦恼:让养生专家来写代码!!!

自己的经验&#xff0c;也是看旁边焦虑的开发总结的一些经验&#xff0c;讲道理不一定有用&#xff0c;但是道理本身一定是对的。 文章目录 持续学习少烦恼明确需求少问题少盯荧幕多冥想少吃奶茶多锻炼亲近自然要放空 持续学习少烦恼 C、JAVA、python、数据库…… 唯有持续学…

Docker下安装Tomcat

目录 Tomcat简介 Tomcat安装 免修改版Tomcat安装 Tomcat简介 Tomcat是Apache软件基金会&#xff08;Apache Software Foundation&#xff09;的Jakarta 项目中的一个核心项目&#xff0c;由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持&#x…

LeetCode | 965. 单值二叉树

LeetCode | 965. 单值二叉树 OJ链接 首先判断树为不为空&#xff0c;为空直接true然后判断左子树的val&#xff0c;和根的val相不相同再判断右子树的val&#xff0c;和根的val相不相同最后递归左子树和右子树 bool isUnivalTree(struct TreeNode* root) {if(root NULL)retur…

8通道16位数据采集卡方案

硬件方案--采集板 下载链接&#xff01;https://mp.weixin.qq.com/s?__bizMzU2OTc4ODA4OA&mid2247558420&idx1&sn3b1d6a99a69e68c32f425e489c21b6d5&chksmfcfaf6c3cb8d7fd52961827dedf30a79e65ed96e5b507bc5027d80f9285aa9bdcf790b940b51&token1650944467…

C/C++ 内存管理(1)

文章目录 C/C 内存划分静态和动态内存C语言的动态内存分配函数mallocfreecallocrealloc 常见内存使用错误 C/C 内存划分 栈区&#xff08;stack&#xff09;&#xff1a;在执行函数时&#xff0c;函数内局部变量的存储单元都可以在栈上创建&#xff0c;函数执行结 束时这些存储…

92基于matlab的引力搜索算法优化支持向量机(GSA-SVM)分类模型

基于matlab的引力搜索算法优化支持向量机&#xff08;GSA-SVM&#xff09;分类模型&#xff0c;以分类精度为优化目标优化SVM算法的参数c和g&#xff0c;输出分类可视化结果及适应度变化曲线。数据可更换自己的&#xff0c;程序已调通&#xff0c;可直接运行。 92 引力搜索算法…

mysql的InnoDB存储引擎

详情请参考&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/innodb-storage-engine.html InnoDB 是一个通用目的的存储引擎&#xff0c;它在高可用性、高性能方面做了平衡。MySQL 8.0&#xff0c;InnoDB 是默认的存储引擎。在创建表的时候&#xff0c;如果没有使用ENGIN…

vmware 安装 AlmaLinux OS 8.6

选择系统镜像 选择镜像 选择安装位置和修改名称 可以自定义硬件&#xff0c;也可以不选择&#xff0c;后面可以再设置 自定义硬件可以设置内存和cpu等信息 安装虚拟机系统 密码如果简单的话需要点击两次done 才能保存

STM32 定时器TIM

单片机学习 目录 文章目录 前言 一、TIM简介 二、STM32的三种定时器 2.1基本定时器 2.1.1定时中断功能 1. 时钟源 2. 预分频器 3. 计数器 4. 自动重装寄存器 5.更新中断和更新事件 2.1.2主模式触发DAC功能 2.2 计数模式 2.2通用定时器 2.2.1 时钟源 外部时钟模式2 外部时钟模式…

使用PCReg.PyTorch项目训练自己的数据集进行点云配准

项目地址&#xff1a; https://github.com/zhulf0804/PCReg.PyTorch/tree/main 网络简介&#xff1a; 网络是基于PointNet Concat FC的&#xff0c;它没有其它复杂的结构&#xff0c;易于复现。因其简洁性&#xff0c;这里暂且把其称作点云配准的Benchmark。因作者源码中复杂…

项目实战之RabbitMQ死信队列应用

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;啥技术都喜欢捣鼓捣鼓&#xff0c;喜欢分享技术、经验、生活。 &#x1f60e;人生感悟&#xff1a;尝尽人生百味&#xff0c;方知世间冷暖。 文章目录 &#x1f31f;架构图&#x…

SpringMVC入门详解

SpringMVC概述 开始之前了解一下三层架构 在JavaEE中我们现在几乎全用的是B/S架构&#xff0c;也就是浏览器 / 服务器架构&#xff0c;在B/S架构中&#xff0c;系统包括标准的三层架构模式&#xff1a; 1.web层&#xff08;表现层&#xff09; 它负责接收客户端请求&#x…

SIP协议在语音通信的应用方式及OKCC系统中的配置方法

在企业语音通信的过程中&#xff0c;SIP协议支持的网络通信技术通过网络为用户提供了无数的通信便利&#xff0c;已成为企业不可或缺的重要通信技术。由于SIP协议是语音通信帮助企业实现这些优势的原因&#xff0c;因此了解支持这些呼叫的SIP协议的上下文至关重要。 什么是SI…

服务器和Linux ,安装R rstudio ,常用软件

服务器的基本概念&#xff1a; 如服务器的基本结构&#xff0c;节点&#xff0c;端口的概念等。 服务器的基本设置和管理&#xff1a; 如何配置新服务器&#xff0c; 如何管理服务器&#xff0c;如何分配账户并确保他们互不访问&#xff0c; 如何全局安装软件让所有人都可以…