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

news2024/12/28 21:06:23

制作整体网页时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.coloradmin.cn/o/1276946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HT81298 集成免滤波器调制D类音频功放

HT81298是一款内置升压的立体声D类音频功率放大器&#xff0c;HT81298内部集成免滤波器调制技术&#xff0c; 能够直接驱动扬声器&#xff0c;内置的关断功能使待机 电流Z小化&#xff0c;还集成了输出端过流保护、片内 过温保护、输入电源欠压异常保护、升压电压 过压保护等功…

TextToSpeech类学习和简单封装

TextToSpeech类简单学习封装 前言一、TTS是什么&#xff1f;二、TextToSpeech简单使用1.官方介绍2.简单使用 三、TextToSpeech简单封装总结 前言 业务涉及到对接TTS相关&#xff0c;所以简单学习下如何使用。 一、TTS是什么&#xff1f; TextToSpeech简称为TTS&#xff0c;即…

在 SQL Server 中备份和恢复数据库的最佳方法

在SQL Server中&#xff0c;创建备份和执行还原操作对于确保数据完整性、灾难恢复和数据库维护至关重要。以下是备份和恢复过程的概述&#xff1a; 方法 1. 使用 SQL Server Management Studio (SSMS) 备份和还原数据库 按照 SSMS 步骤备份 SQL 数据库 打开 SSMS 并连接到您…

【数据结构和算法】找出叠涂元素

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 三、代码 四、复杂度分析 前言 这是力扣的2661题&#xff0c;难度为中等&#xff0c;解题方案有很多种&…

LeNet对MNIST 数据集中的图像进行分类--keras实现

我们将训练一个卷积神经网络来对 MNIST 数据库中的图像进行分类&#xff0c;可以与前面所提到的CNN实现对比CNN对 MNIST 数据库中的图像进行分类-CSDN博客 加载 MNIST 数据库 MNIST 是机器学习领域最著名的数据集之一。 它有 70,000 张手写数字图像 - 下载非常简单 - 图像尺…

规则引擎专题---2、开源规则引擎对比

开源规则引擎 开源的规则引擎整体分为下面几类&#xff1a; 通过界面配置的成熟规则引擎&#xff0c;这种规则引擎相对来说就比较重&#xff0c;但功能全&#xff0c;比较出名的有:drools, urule。 基于jvm脚本语言&#xff0c;互联网公司会觉得drools太重了&#xff0c;然后…

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

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

spring boot mybatis TypeHandler 看源码如何初始化及调用

目录 概述使用TypeHandler使用方式在 select | update | insert 中加入 配置文件中指定 源码分析配置文件指定Mapper 执行query如何转换 结束 概述 阅读此文 可以达到 spring boot mybatis TypeHandler 源码如何初始化及如何调用的。 spring boot 版本为 2.7.17&#xff0c;my…

触控板绘画工具Inklet mac功能介绍

Inklet mac是一款触控板绘画工具&#xff0c;把你的触控板变成画画的板子&#xff0c;意思是&#xff0c;你点在触控板的哪里&#xff0c;鼠标就会出现载相应的地方。例如&#xff0c;但你把手指移动到触控盘左下角&#xff0c;那么鼠标也会出现在左下角&#xff0c;对于用户而…

【已解决】Cannot find project Scala library 2.11.8 for module XXX

问题描述 在 flink 示例程序调试过程中&#xff0c;reload project 报错 Cannot find project Scala library 2.11.8 for module HbasePrint 报错如下图所示&#xff1a; 问题解决 经过搜索&#xff0c;初步判定是 pom 文件中 Scala 版本配置和项目中实际使用的版本不一致导…

11.29 知识回顾(视图层、模板层)

一、视图层 1.1 响应对象 响应---》本质都是 HttpResponse -HttpResponse---》字符串 -render----》放个模板---》模板渲染是在后端完成 -js代码是在客户端浏览器里执行的 -模板语法是在后端执行的 -redirect----》重定向 -字符串参数不是…

RabbitMq整合Springboot超全实战案例+图文演示+源码自取

目录 介绍 简单整合 简单模式 定义 代码示例 work模式 定义 代码示例 pubsub模式 定义 代码示例 routing模式 定义 代码示例 top模式 定义 代码 下单付款加积分示例 介绍 代码 可靠性投递示例 介绍 代码 交换机投递确认回调 队列投递确认回调 ​延迟消…

前缀和 LeetCode1094 拼车

1094. 拼车 车上最初有 capacity 个空座位。车 只能 向一个方向行驶&#xff08;也就是说&#xff0c;不允许掉头或改变方向&#xff09; 给定整数 capacity 和一个数组 trips , trip[i] [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客&#xff0c;接…

抖音怎么一次性隐藏全部视频

很多朋友不知道抖音怎么一次性隐藏全部视频&#xff0c;其实只需要在设置菜单中将账号设置为【私密账号】即可&#xff0c;在抖音中依次点击【设置】-【我】-【隐私设置】-【私密账号】&#xff0c;在弹出的窗口中将账号设为私密即可。也可以依次打开抖音作品&#xff0c;点击底…

golang Pool实战与底层实现

使用的go版本为 go1.21.2 首先我们写一个简单的Pool的使用代码 package mainimport "sync"var bytePool sync.Pool{New: func() interface{} {b : make([]byte, 1024)return &b}, }func main() {for j : 0; j < 10; j {obj : bytePool.Get().(*[]byte) // …

解决element ui tree组件不产生横向滚动条

结果是这样的 需要在tree的外层&#xff0c;包一个父组件 <div class"tree"><el-tree :data"treeData" show-checkbox default-expand-all></el-tree></div> 在css里面这样写,样式穿透按自己使用的css编译器以及框架要求就好 &l…

SQL Server 2016(创建数据库)

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

文献速递:人工智能在健康和医学中

人工智能在健康和医学中 01 文献速递介绍 这篇文章详细探讨了人工智能&#xff08;AI&#xff09;在医学领域的最新进展、挑战和未来发展的机遇。 1.医学AI算法的最新进展&#xff1a; **AI在医疗实践中的应用&#xff1a;**虽然AI系统在多项回顾性医学研究中表现出色&…

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;如果你先…

Beautiful Soup4爬虫速成

做毕业论文需要收集数据集&#xff0c;我的数据集就是文本的格式&#xff0c;而且是静态页面的形式&#xff0c;所以只是一个简单的入门。动态页面的爬虫提取这些比较进阶的内容&#xff0c;我暂时没有这样的需求&#xff0c;所以有这类问题的朋友们请移步。 如果只是简单的静态…