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

制作整体网页时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%;
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

6 新建工程——寄存器

文章目录 6.1 本地新建工程文件夹6.2 新建工程6.2.1 选择CPU型号6.2.2 在线添加库文件6.2.3 添加文件6.2.4 复制存储器分配文件6.2.5 配置选项卡 版本说明&#xff1a;MDK5.24 6.1 本地新建工程文件夹 可随意命名&#xff0c;该目录下新建 2 个文件夹 Listings 和 Objects 6…

GPC-SCP03安全通道协议

概述&#xff1a; 规范全称&#xff1a; GlobalPlatform Technology Secure Channel Protocol 03 Card Specification V2.3 - Amendment D Version 1.1.2 安全通道的建立的标志即通讯双方都形成三个安全通道共享密钥(Derived Session Key)&#xff0c;它们是Kmac, Krmac, Kenc…

Sass 同时导出JavaScript 和 CSS变量

Sass 官网 安装插件 注意 sass-loader 版本没设太高&#xff0c;否则会报错 Syntax Error: TypeError: this.getOptions is not a function npm i sass sass-loader10 -D创建 Sass 文件 variables.module.scss。注意这里是 module.scss&#xff1a; 否则报错 Cant find st…

docker 搭建开发环境,解决deepin依赖问题

本机环境&#xff1a; deepin v23b2 删除docker旧包 sudo apt-get remove docker docker-engine docker.io containerd runc注意卸载docker旧包的时候Images, containers, volumes, 和networks 都保存在 /var/lib/docker 卸载的时候不会自动删除这块数据&#xff0c;如果你先…

PyQt6 QRadioButton单选按钮控件

​锋哥原创的PyQt6视频教程&#xff1a; 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计33条视频&#xff0c;包括&#xff1a;2024版 PyQt6 Python桌面开发 视频教程(无废话…

Linux部分基础指令讲解

目录 1.echo指令 2.more指令 3.less指令&#xff08;重要&#xff09; 4.head指令 5.tail指令 6.管道| 7.时间相关的指令 8.cal指令 9.find指令 10.grep指令 1.echo指令 我们先看效果 如图所示我们可以看到显示器显示出了hellow world和hellow这两句话&#xff0c;我们的echo的…

SQL Server 2016(创建数据库)

1、实验环境。 某公司有一台已经安装了SQL Server 2016的服务器&#xff0c;现在需要新建数据库。 2、需求描述。 创建一个名为"db_class"的数据库&#xff0c;数据文件和日志文件初始大小设置为10MB&#xff0c;启用自动增长&#xff0c;数据库文件存放路径为C:\db…

《地理信息系统原理》笔记/期末复习资料(8. 数字高程模型)

目录 8. 数字高程模型 8.1 概述 8.1.1 数字高程模型概念 8.1.2 数字高程模型特点 8.2 DEM数据分布特征 8.2.1 格网状数据 8.2.2 离散数据 8.3 DEM的表示方法 8.3.1 数学方法 8.3.2 图形方法 8.3.3 DEM三维表达方法 8.4 TIN的生成方法 8.4.1 人工方法 8.4.2 程序自…

OpenTelemetry系列 - 第4篇 OpenTelemetry K8S生态

目录 一、【Helm】添加OTel Helm repo二、【Helm Chart】OTel Collector2.1 daemonset2.2 deloyment 三、【K8S Operator】OTel Operator3.1 安装OTel Operator3.2 部署OpenTelemetryCollector3.2.1 Deloyment Mode3.2.2 DeamonSet Mode3.2.3 StatefulSetMode3.2.4 Sidecar Mod…

表的创建和管理

表的创建和管理 一条数据的存储过程标识符的命名规则MySQL中的数据类型管理和创建数据库创建数据库使用数据库修改数据库 创建表创建方式1创建方式2查看数据表结构 修改表追加一个列修改一个列重命名一个列删除一个列 重命名表删除表清空表 一条数据的存储过程 存储数据是处理数…

配置中心--Spring Cloud Config

概述 因为微服务架构有很多个服务&#xff0c;手动一个一个管理各个服务配置很麻烦&#xff0c;不同的环境&#xff08;开发、测试、生产&#xff09;往往需要不同的配置文件&#xff0c;运行期间也需要动态调整配置&#xff0c;修改配置后微服务需要自动更新配置&#xff0c;…

从“芯”到云,看亚马逊云科技如何让未来“平等”发生

文章目录 业界最全面算力选择&#xff0c;有效解决多样性需求多年自研芯片积累&#xff0c;带来性能与性价比双重优势全球基础设施与独特的业务模式&#xff0c;让创新不受限 “科幻作家威廉吉布森说‘未来已至&#xff0c;只是还没有均匀分布’。”2023年6月底&#xff0c;当亚…