17盒子模型练习-设置背景-附加背景图片

news/2024/12/19 16:23:58/文章来源:https://www.cnblogs.com/wumouhao/p/18617486

一、元素的水平居中方案

这个是在开发中比较常见的功能,就是元素的水平居中,需要元素在父元素中水平居中显示,父元素一般都是块级元素,inline-block
如果想要居中目前我们学习了两种方案:
行内级元素(包括inline-block元素)
水平居中:在父元素中设置text-align:center
块级元素
水平居中:margin: 0 auto
这是一个总结,接下来做几个案例。

二、盒子模型案例-京东按钮


如果是实现这样的一个按钮使用div,使用a元素,使用什么都可以,如果要点击跳转另外一个链接最好使用a元素
创建一个超链接a元素“新人福利”,最基本的结构现在已经有了,现在默认是有一个下划线,并且文字不好看,并且没有背景。
接下来解决。
给一个class,定位到这个新人福利a元素,a元素有一些自己的默认样式,自己的文字颜色,默认的下划线,
如果等会还需要做其他的案例,我们也需要删除掉
下划线text-decoration:none;,并且文字的颜色以前景色的方式设置color:#333;并且设置一个文字大小font-size:12px;
这个是a的一个重置,好了这是第二步。
然后给a添加一些相关样式。因为等会做其他的案例的时候要使用,所以将这个css放到reset.css中,然后再link进来
rel="stylesheet" href指定该CSS的位置
如果想要做的一摸一样直接查看样式就行了。
如果如果想要按照自己的思路来做直接截图固定到屏幕
这个东西是有宽度和高度的,不一定要设置width和height,也可以设置一个内边距,这个东西是不一定的
这里是设置宽度和高度,还是内边距都需要display:inline-block;
然后才能设置宽度和高度,然后设置文字的垂直居中line-height:25px;,然后内容居中text-align:center;
最后来一个圆角border-radius:13px;
于是就完成了

然后做另外的一个按钮,叫做PLUS会员
这两个按钮相似,改一下背景,前景色
京东使用的是background,这里使用background-color,关于background和background-color的区别以后再讲

现在从代码的角度来说产生了重复代码,需要抽取出重复的代码
单独抽取出来一个.btn的样式相同的代码放在公共的样式中,特有的单独设置

还有,如果将手指放上去的时候是有一个特殊的颜色的

但是如果我们要获得京东原版的hover状态应该怎么拿到呢?

三、盒子模型练习案例2-小米手机


背景是一个白色,背景是白色能够突出是因为小米的body背景进行了更改,所以给body设置一个背景background-color
设置最多的灰色都是#f5f5f5,这个直接在reset.css中设置,然后给body添加一个margin:0;一个padding:0;
然后link引入,然后将这个项看成一个item类,然后写里面的东西。
从先整体然后局部的角度,观察一下这个东西有一个变成小手的特点,并且也是可以点击的,给item的时候需要是一个div,但是不太合适,因为
a元素才能跳转,所以需要使用一个a元素,所以先来一个超链接。
然后内容有图片,有文本,现在要在这个里面放入东西,需要考虑一个问题,当前整个这个盒子这里是整体全部都是居中的。
现在是a元素是一个行内级元素,第一不能设置宽度和高度,设置padding的时候,上下如果也有padding会有一个特殊的效果
所以,最好不要设置成行内元素,需要改成一个inline-block;后面flex布局就不需要了,这里我们暂时使用这个设置。
先给定宽度和高度,然后设置一个背景颜色,然后将这个图片从官网上拿下来,这里有时候这里图片直接放到img可能会显得有一些单薄,需要包裹div
然后这个div中再放一个img,这个是多多一个包裹,以后调整是调整div,这种做法比较多,现在先不写这个多包裹的div也可以。
默认图片具有一定的大小,需要对这个图片进行设置宽度和高度,目前图片是靠左的,图片设置一个text-align:center;就居中显示了,但是距离上面的距离有些近
调整的时候如果通过margin-top调整会出现传递的问题,可以设置一个padding:25px 10px;
但是这样进行设置导致整体变大了,因为当前这个盒子是一个content box,现在需要调整成一个box-sizing: border-box;使得考虑到content,padding,border
然后图片下面是一个文字,如果设置的是h3也是可以的,但是h3是有一些默认的样式的
这个东西也放到reset中将加粗的效果变小
cont-weight:400;
下面还有一个描述,这个描述会超出,可以给一个p标签,但是p元素有一个默认的上下margin
我们的p也需要和body一样,另外h3也有上下的margin

一旦将这个东西去掉之后就会带来一些需要微调的地方

好像变大了一些
可以给这个h3再来一个margin-top:10px;
最后是一个文字颜色,找到这个p段落,设置一个color为999
现在是显示不出来的东西需要有一个省略号的效果
现在p段落的描述比较多需要显示到一行,单行显示然后省略号
给这个段落一个white-space:nowrap;这个是单行显示不换行,但是有些内容超出了文本,超出的部分隐藏式之前讲的
overflow: hidden;

隐藏会导致超过的部分直接被截断了
还需要设置一个text-overflow:ellipsis;这个单词是省略号的意思,如果文本超出设置成省略号
好了这个完成了
最后是两个价格,直接设置一个div,然后里面两个span
也是设置颜色color,设置字体的大小,然后是一个字体样式,这个字体样式可以直接放到reset中的body中
设置text-decoration:line-through;给这个文字添加上一个删除线
参考代码:



再添加一个hover,

然后居中显示

四、b站-懒洋洋


不是整个都是超链接,也就没有必要外层设置成a,外层这里直接设置成一个div
然后div中一个封面一个关于视频的描述,然后是小图标,小图标这里不做,然后是昵称,时间

现在整体的结构已经出来了,但是图片好像不能加载

服务器是一个403的,服务器已经拒绝了

通过设置这样的一个值就能拿到这个图片了

需要点击的地方设置超链接,但是这样违背了我们原则,这个a是行内元素里面包含了一个p元素块元素
需要给a设置一个inlin-block


这里改成一个整体方便调整



这个案例细节有点多,后面详细讲解。

五、新知识-CSS设置背景

CSS设置背景有哪些属性呢?
background-image
background-repeat
background-size
background-position
background-attachment
background
1、认识网页的背景
再开发中,为了让网页更加美观,我们经常会设置各种各样的背景:
前面已经学习了如何设置背景颜色,这里要学习设置背景的更多的知识
2、background-image
background-image用于设置元素的背景图片
会盖在部署覆盖在background-color的上面,以层叠的形式,
并且也可以设置多张背景图片的
默认添加过来的背景是平铺的background-image:url();

如果不要平铺可以设置background-repeat:no-repeat;

这个是没有设置平铺的时候的样子。
另外背景说过可以设置多张。

但是如果设置了多张图片,设置的第一张图片将会显示在上面,其他图片按照顺序层叠在下面

注意:如果设置了背景图片之后,元素没有具体的宽度和高度,背景图片是不会显示出来的。
3、background-repeat
background-repeat用于设置背景图片是否平铺
常见的设置值有:
repeat:平铺
no-repeat:不平铺
repeat-x:只有在水平方向平铺
repeat-y:只有在垂直方向平铺

这个是在y轴平铺的意思
另外可以利用一些小图片来做一些好看的背景效果

这个是一个平铺的效果。
4、background-size
background-size是用来设置背景图片的大小的
auto:默认值,以背景图本身大小显示
cover:缩放背景图片,以完全覆盖铺满元素,可能背景图片部分看不见
contain:缩放背景图,宽度或者高度铺满元素,但是图片报纸宽高比
:百分比,相对于背景区(background positioning area)
length:具体大小,比如100px

下面的这个效果是设置了背景的尺寸,等比例放大并且不超过background-size:contain;

另外设置成background-size:cover;

这里它直接以高度进行拉伸,超出去的部分隐藏。
如果设置成background-size:100% 100%;

整张图片完整填充,但是这样图片就会变形
或者设置成一个具体的大小,background-size:100px 100px;
5、background-position
这个是设置背景的位置的,
如果设置成backgfound-position:100px 100px;

另外也可以设置成负值,会往左上角移动
background-position用于设置背景图片在水平,垂直方向上的具体位置
可以设置具体的数值,比如20px 30px;
水平方向还可以设值:left, center, right
垂直方向还可以设值:top, center, bottom
如果只设置了一个方向,另外一个方向默认是center

比如通过关键字可以直接移动到某一个位置background-position: right bottom;
6、背景设置background-position的练习

这里当我们将窗口缩小的时候我们的背景被吞没了
当我们移动的之后希望一个一直能够显示中间的内容

这种需求还可以通过定位来做,最简单的是通过背景图片来做。

7、背景滚动效果或者叫附加效果
background-attachment
background-attachment决定背景图片的位置是在视口内固定,或者是随着包含它的区块滚动。
可以设置以下三个值
scroll:此关键属性值表示背景相对于元素本身固定,而不是随着它的内容滚动。

超过的部分滚动显示


当然还可以继续的放置背景
如果是local:此关键属性值表示背景相对于元素的内容固定。如果一个元素拥有滚动机制,背景会随着元素的内容滚动
fixed:此关键属性值表示背景相对于视口固定。即使一个元素拥有滚动机制,背景图也不会随着元素的内容滚动。

8、background
background是一系列背景相关属性的简写属性。

这个东西和之前的font有一点像
background-size可以省略,如果不省略,/background-size必须紧跟在background-position的后面
其他属性也都可以省略,并且顺序任意。

9、background-image和img对比
img属于HTML,background-image属于CSS

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

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

相关文章

2024年项目管理工具大对比:15款软件助力团队高效协作

在当今竞争激烈的商业环境中,项目管理的效率直接关系到团队的成败。无论是大型企业的复杂项目,还是小型团队的日常任务,合适的项目管理工具都能起到事半功倍的效果。随着技术的不断发展,市场上涌现出了众多功能各异的项目管理软件。在 2024 年,有 15 款软件脱颖而出,成为…

视频融合平台EasyCVR热知识:5G网络对智能监控系统远程控制的影响有哪些潜在风险?

随着5G技术的快速发展和广泛应用,智能监控系统正迎来一场革命性的变化。5G网络以其高速率、低延迟和大连接数的特性,极大地提升了智能监控系统的远程控制能力,使其在城市管理、交通监控、公共安全等多个领域发挥着越来越重要的作用。然而,正如任何技术进步都伴随着新的挑战…

工控机的基本概念与应用领域

工控机不仅以处理工业环境中的热量、冲击和振动而闻名,而且在控制和数据收集方面也具有强大的功能能力。功能全面的工控机有多种尺寸和配置,可以应对极端工业环境。然而,在控制能力方面,它的多功能性,可以执行多个控制器的工作,才是它真正的亮点。 许多工控机都可轻松定制…

MySQL的日志机制

MySQL日志机制随笔(redolog、binlog、undolog)redolog相关 作用:保证数据库的恢复能力,数据库崩溃了,能使用redolog恢复数据 是什么?redolog是物理日志,记录的是哪个数据页哪个字段被哪个事务改变了, 速记:redolog是一种写前日志,先写redolog,等到数据库闲的时候再去…

mysql的内部组件结构

大体来分,MySQL分为引擎层和server层 server层 连接器、查询缓存、分析器(解释器)、优化器、执行器等,涵盖 MySQL 的大多数核心服务功能,以及所有的内置函数(如日期、时间、数学和加密函数等),所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等。 连接…

工作中这样用MQ,很香!

前言 消息队列(MQ)是分布式系统中不可或缺的技术之一。 对很多小伙伴来说,刚接触MQ时,可能觉得它只是个“传话工具”,但用着用着,你会发现它简直是系统的“润滑剂”。 无论是解耦、削峰,还是异步任务处理,都离不开MQ的身影。 下面我结合实际场景,从简单到复杂,逐一拆…

点阵LED数显屏驱动芯片/数码管驱动控制器-VK1668 SOP24

产品品牌:永嘉微电/VINKA 产品型号:VK1668 封装形式:SOP24 概述 VK1668是一种带键盘扫描接口的数码管或点阵LED驱动控制专用芯片,内部集成有3线 串行接口、数据锁存器、LED 驱动、键盘扫描等电路。SEG脚接LED阳极,GRID脚接LED阴 极,可支持13SEGx4GRID、12SEGx5GRID、11SE…

Qt鼠标悬浮Hover消息不触发,只有鼠标单击才会触发消息?

1.Qt鼠标悬浮Hover消息不触发,只有鼠标单击才会触发消息? 下面的工具配置,想要鼠标悬浮在工具菜单上时,显示删除的图标;但是发现怎么都触发不了bool CBaseToolListWidget::eventFilter(QObject* ptr_object, QEvent* ptr_event){if (this == ptr_object){QEvent::Type eve…

vue-进行分组----将轮播图数据进行分组

效果展示第一步将数据进行分组处理 例如:数据是这样的处理方法一:进行两次for循环处理方法二:进行一次for循环

20222402 2024-2025-2 《网络与系统攻防技术》实验八实验报告

1.实验内容 1.1本周学习内容 Web 前端:负责开发用户所看到的内容。 (1)HTML (2)JavaScript(Js) (3)CSS (4)Web 前端框架 Web 后端:主要使用各种库,API,Web 服务等技术搭建后端应用体系,确保各种 Web服务接口之间的正确通信。比如处理前端用户发起的请求,各种业务逻辑的操作…

Shor’s Algorithm

本文延续RSA与ECC-ElGamal。 Shor算法(Shor’s Algorithm)几乎是最为出名的量子算法,原因就在于其可以在多项式的时间复杂度内完成大数的质因分解问题。也由此,基于质因分解难题的RSA算法受到了严重的量子威胁,而RSA算法正是在日常生活之中最为常用(如HTTPS协议、SSH协议…

翻页代码

using System.Collections;using System.Collections.Generic;using UnityEngine; public class NewBehaviourScript : MonoBehaviour{ //成员变量 //SerializeField凡是显示在Inspector(检查器) 中的属性都同时具有Serialize功能(序列化的意思是说再次读取Unity时序列化的变…