首页 > 其他分享 >17盒子模型练习-设置背景-附加背景图片

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

时间:2024-12-19 16:35:32浏览次数:4  
标签:盒子 background 17 一个 背景 元素 设置 背景图片

一、元素的水平居中方案

这个是在开发中比较常见的功能,就是元素的水平居中,需要元素在父元素中水平居中显示,父元素一般都是块级元素,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

标签:盒子,background,17,一个,背景,元素,设置,背景图片
From: https://www.cnblogs.com/wumouhao/p/18617486

相关文章

  • 【2024-2017】Adobe图像处理软件 Photoshop(常简称为PS)下载安装
    AdobePhotoshop软件简介AdobePhotoshop(常简称为PS)是由Adobe公司开发的一款图像处理软件。自1988年首次发布以来,Photoshop以其强大的图像编辑功能和用户友好的界面而受到全球设计师、摄影师以及艺术家的喜爱。它广泛应用于摄影后期处理、数字绘画、图形设计、网页设计以及动......
  • C#/.NET/.NET Core技术前沿周刊 | 第 17 期(2024年12.09-12.15)
    前言C#/.NET/.NETCore技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NETCore领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等......
  • 12.17夜发电实录
    1随便找寻一个日期消失不可思议的世界深浅未知的乐园与故乡哇,还有纯爱充电。耗电给自己充电充电耗电给自己充电温暖而拖沓的浅白色的背后没有扣子的旗袍与系带的灰烬一般的冬日2太好了,准备拿舌头去舔[em]e400365[/em][em]e400365[/em][em]e400365[/em][em]e400365[/......
  • 12.17双向链表和循环链表
    1.思维导图2.单向循环链表1>程序代码:头文件:#ifndef__LOOPLINK_H__#define__LOOPLINK_H__#include<stdio.h>#include<stdlib.h>//构造节点数据类型typedefintDatatype;typedefstructnode{ union { intlen; Datatypedata; }; structnode*next;}......
  • 2024-12-18 17 55 记录 Cambly trip`s summary and wher 1607b517085581159d14fe77503
    2024-12-1817:55记录Camblytrip`ssummaryandwhereisthenext?https://tingwu.aliyun.com/doc/transcripts/g2y8qevxaayxnbeo?sl=1#《2024-12-1817:55记录Camblytrip`ssummaryandwhereisthenext?》1.全文摘要对话讲述了一个人通过使用美好的旅行来学......
  • 【每日刷题】Day172
    【每日刷题】Day172......
  • 17.数组_一维数组
    1.一维数组的创建和初始化。  1.1数组的创建数组是一组相同类型元素的集合。数组的创建方式:type_t    arr_name      [const_n]//type_t 是指数组的元素类型//const_n  是一个常量表达式,用来指定数组的大小数组创建的实例://代码1  ......
  • 17.数组_二维数组和数组越界
    2.二维数组的创建和初始化 2.1二维1数组的创建//数组创建intarr[3][4];char arr[3][5];doublearr[2][4]; 2.2二维数组的初始化//数组的初始化intarr[3][4]={1,2,3,4};intarr[3][4]={{1,2},{4,5}};intarr[][4]={{2,3},{4,5}};//二维数组如果有初......
  • 12.17 CW 模拟赛 赛时记录
    前言这一次又来更新比赛策略讲真打了这么久,还没有一个好的比赛策略真的是抽象回去吃点感冒药看题怎么\(\rm{T1\T2}\)是一个题\(\rm{T1}\)可能是\(\rm{dp}\)题\(\rm{T3}\)有些不好做\(\rm{T4}\)这种题一般都不会做,能骗多少是多少\(\rm{T1}\)思路转化题意......
  • 12.17
    实验4NoSQL和关系数据库的操作比较 1.实验目的(1)理解四种数据库(MySQL、HBase、Redis和MongoDB)的概念以及不同点;(2)熟练使用四种数据库操作常用的Shell命令;(3)熟悉四种数据库操作常用的JavaAPI。2.实验平台(1)操作系统:Linux(建议Ubuntu16.04或Ubuntu18.04);(2)Hadoop版本:3.1.3;(3)My......