html+css学习

news2024/11/15 19:44:11

html 元素

html元素是HTML的根元素,一个·文档·只能有一个,其他所有元素都是其后代元素

html有一个属性为lang,其作用是:

  • 帮助语言合成工具确定要使用的发音
  • 帮助翻译工具确定要使用的翻译规则

当属性lang=“en”则表示告诉其浏览器,HTML文档的语言是英文。

当属性lang=“zh”则表示告诉其浏览器,HTML文档的语言是中文。

head元素

head元素中的内容是一些“元数据”(也就是描述数据的数据),一般用于描述网页各种信息,比如字符编码,网页标题,网页图标。

title元素,其功能是设置网页的标题。

meta元素,设置网页的字符编码,一般都使用utf-8。

body元素

里面存放网页可浏览的信息,也是网页内容的具体构成

h元素和seo

h元素有助于网站的seo优化,可以促进关键字的排名。但是一般一个网页最多使用一个h1元素,倘若乱用不会给网站带来权重,还会被搜索引擎认为作弊,导致k站

code元素

将内容变成等宽字体

p元素

表示一个段落

span元素

默认情况下,跟普通文本几乎没差别
用于区分特殊文本和普通文本,比如用来显示一些关键字。对普通文本进行归类的

div元素

一般作为其他元素的父容器,把其他元素包住,代表一个整体
用于把网页分割为多个独立的部分

img元素

用来显示图片的,为单标签。

src属性(src是source的缩写)用来设置图片的路径(URL)
绝对路径:完整的描述文件位置的路径本地图片地址(路径)
特点:从根路径下面开始找
缺点:一旦位置位置发生改变,那么就有可能出现文件(图片)找不到的情况
相对路径:由这个文件所在的文件夹引起的跟其它文件的路径关系
.代表当前文件夹(1个.),可以省略
 .. 代表上级文件夹(2个.)
对于网页来说,不管什么操作系统(Windows、Mac、Linux),路径分隔符都是/,而不是\

alt属性 :当图片无法加载时,则显示alt中的内容。

字符实体

常用图片格式

web中常用的图片格式有
png:静态图片,支持透明

jpg:静态图片,不支持透明

gif:动态图片、静态图片,支持透明

注意
img元素如果只设置了width(或height),浏览器会自动根据图片宽高比计算出height(或width)

在HTML5规范中,alt是img元素的必要属性

width、height的默认单位是px,像素

a元素

定义超链接,用于打开新的URL点击链接就会自动跳转相应的页面

常用属性

href:指定要打开的URLHypertext Reference的简称target URL打开的位置。

其中属性有

_self(默认值) :· 表示在当前页面位置打开

_blank:新开一个页面打开

和iframe一起使用时,才有效果的属性
_parent:使用iframe嵌套后,在当前页面的父级页面打开,也就是该页面的上一个
_top:再最顶层打开,也就是浏览器
具体的name:使用iframe可能嵌套很多页面,可指定在哪个页面打开当前的这个

思考:如何打开本地页面?
使用相对路径

锚点链接

点击超链接会到定位到id为该超链接的href的值,比如,href=#one,那么点击该超链接就会到对应的id为one的地方

伪链接

当href的值没有时,点击无反应

当无href属性时,就不会是个链接形式就是个普通文本

当href的值为#时,点击该链接会跳到页面顶部

a链接不一定是跳转新网页,他是打开一个新新链接,他可以是下载资源,也可以发送邮件

URL

常见协议

一般是有·端口的,但是一般默认省略了

 base元素

单标签,用于拼接,比如,在base中写入了一个网站那么再在a中写入的不带完整网站的链接就会跟base中的拼接在一起

标签语义化

css

简史

属性

文档

中文文档

书写格式

css样式应用格式

内联样式

直接在需要样式的元素中写内容

文档样式/内嵌样式

在head中使用style,然后在style中写样式,写样式的方法又分几种不同的,可以直接写元素明加大括号,在大括号中写需要的属性,这样,所有该元素都会应用该属性。也可以用标签,使带有该标签的使用其效果等

外部样式

在外部创建一个css文件,然后在其中写属性,切记要写明字符编码。

应用方式有两种,要么使用link引用,在link中的href中输入css文件位置。

要么使用import。在url中输入css地址

当同时应用两个 不同的css文件,两个文件对同元素进行设计,如果,设计的部分不同,则会拼接,否则就会覆盖

需要引用的够多时,可以在css里引用其他需要引用的css

@import

css选择器

通用选择器

关键字符 * ,使用*则文件中所有元素都会使用*中设计的内容

元素选择器

直接用一个元素名如div加大括号,在大括号中写的内容就会被应用到所有div元素中

类选择器

在某个元素中使用class,给class等号后加上一个自定义的名,再用.自定义的class类的名,加上大括号,此时大括号中的内容就会应用在元素中的class=该自定义的类名中。如 .box{color:red;}则所有带class=“box”的元素都会应用到属性color:red;

另外,一个元素是可以有多个类的,用空格隔开即可,例如 <p class="box box1">

注意

类的命名规范

id选择器

给需要设置属性的元素设置id 并自定义id名,id不可重复。再设置时需要加上#符号,在#符号后写上想要写属性的id即可,此时大括号的内容就会应用到对应的id属性

当使用了id选择器和类选择器的叠加时表示在id为header中的title color属性为red

注意点

注释

html和css的编写准则

设置网页图标

最常用的css属性

color

前景色,除了字体颜色会改变,关于字的效果也会改变

ccs属性-backgroud -color

背景颜色

width和height

设计内容高宽的

不适应于非替换行内元素,而span刚好就是,所以,这两对其无效果

span为行内元素,所以width设置对他无效

span元素

div元素

作业

快捷方式:

颜色

颜色空间rgb(red,green,blue)

颜色表达方式

十六进制

颜色规律

RGBA颜色(a为透明度)

css属性-文本属性

text-decoration

underline->下划线

overline->下划线

line-through->中划线

letter-spacing和word-spacing

字母间隔和单词间隔

text-transform

capitalize首字母大写

uppercase所有都大写

lowercase所有都小写

text-indent

第一行文本的缩进

text-align

设置文本对齐方式

之所以有这种现象的原因是因为,div虽然被设置了宽,但是他本质仍然默认是一行,所以在继承box3时自然而然的把内部div当成跟自己一样的一整行是把一整行居中的。如果没有单独设置内部div的宽度,那么内部div的文本就没限制在那一小块,就会跟随外部的设置而居中.设置了div的wight其实相当于在div取那么宽存放相应的数据而已。

将两端的空间平分到没个字之间,想最后一行也有效就可以使用

css属性--文字属性

font-size

设置文字大小

相当于外部的div字体20的百分之50,也就是10,但是谷歌浏览器默认最小为12,所以显示的会是12大小

font-family

文字类型

英文字体类型只适应于英文,中文两者都适应,所以如果要分别使用中英字体,先写英字体。

最好英文都加单引号

font-weight

设置文字粗细

font -stlye

设置文字风格

font -variant

line-height

height和line-height的区别

font

可以一次性将font-style,variant,weight,size/line-height,family写下且,size和family不可换位置和省略,但是其他可以,但line-height不省略的话必须在size后面

属性选择器

设置属性title,如果未要求属性title的‘值’,那么有该属性的所以元素都可应用其设置的内容·

如果带有该属性的且=后的内容完全一致,就会应用其设置,如果想控制属性=后含有某个内容则需要在等号前加上*号,加上*代表只要你title属性的值带有该内容就可应用

加上^代表以该字母开头就可应用,$表示以该内容结尾的可应用

[tiltle]

[title=" 内容"]

[tilte*="内容"]

[title^="one"]

[title|="内容"]

[title~="内容"]

[title$="内容"]

后代选择器

直接或间接子元素

一定要加空格,不加空格就是交集选择器了

子选择器

直接子元素(间接不算)>

p不要包div!

相邻兄弟选择器

后面紧挨着的元素为兄弟关系的+

全体兄弟选择器

后面所有的,且为兄弟~

交集和并集选择器

交集选择器

共同有的才行

并集选择器

有就行,要用逗号隔开

伪类

动态伪类

鼠标放上的效果

点下去

focus

聚焦就是被选中,例如被table键选中就是聚焦在那个地方或者像input输入框点击输入时也是聚焦状态,想要在被聚焦的时候改变样式,也是可以动态伪类来实现的

当input被聚焦时,就会改变样式,当使用table键来到超链接时,样式也会改变

去掉a元素默认的:focus效果

因为被聚焦会默认有个蓝色的框,如果想去掉这个框可以用动态伪类使用outline:none即可

如果想实现不被聚焦,无法聚焦的话,a元素可以使用它有的一种属性,tabindex=-1,因为tabindex是用来调整tab键选择顺序的,如果改为-1,则代表永远选不上。

细节

目标伪类

加上target点击锚点链接,点哪个,到达的相应地址就会应用伪类设置的效果,如下图就点击锚点链接标题1,就会来到内容标题一上,并且标题一文本变红

语言伪类

元素状态伪类

disabled为button元素的一个属性,当设置了该属性,则表示这个按钮不可用,且会变灰,如果我们想让有这个属性的按钮的文字颜色改变,直接使用伪类来将该元素这个属性时颜色为红即可

结构伪类

快捷输入方式,*几就生成几个

nth-child(具体数字)

nth可以理解为 第n个,而child又是孩子的意思,所以可以理解为,第n个子元素。而括号内填写的代表指定想操作的第几个子元素。

解析:

因为从body元素来看,div,p,div都是他的子元素,所以第三个div的内容就都会被之前设置的第三个子元素效果影响

nth-child(含n的式子)

p的2n偶数会变,偶数有特殊的关键字代替-》even,所以可以用2n,也可以even

同理奇数也可以设计,将其改成2n-1或者2n+1,同样也有关键字,odd

还可以灵活应用,例如你想要取前三前五,就可以用-n进行加减来完成,n代表的是从(0开始的自然数)

nth-last-child()

从最后开始数的第n个子元素,同样括号内可以是具体数,也可以是含n的算式

nth-of-type(具体数字)

表示指定类型中的第n个,无视其他类型,只看指定的类型。入过不指定类型,那么代表的就是每个类型的第n个。注意,是从一个元素的子类中数第n个。所以图中,文字内容6是body元素的子类为p类型的第二个,则生效,而文字内容5是div元素子类类型为p的第二个,所以也生效

其他

only child

解析:因为html元素是整个文档的根元素也是整个文档唯一的子元素,所以,所有内容都会变红

所以我们需要根据需求来加条件

only-of-type

父类唯一类型的元素

root

两种表达方式都一样,都可以

empty

表示选中没有内容的元素,注意,如果元素中有子元素或者有空格,那么都不属于空白元素

否定伪类

解析:因为body,html也是一个元素,且不为div,所以,所有的都会应用

解析:

这两种表达的意思是一样的,因为not(html)代表不是html,冰不否了他的子类,所以你可以是body,所以就相当于,除了html 然后子类除了body且除了div也可为,body子类除了body且除了div

伪元素

first-letter和first-line

befor和after

所以无法设置width和height。想要设置需要用到display,,后面会细说display。

注意,就算写一个空的content=“”,也不能将content删除

Emmet语法

!和html5

想要快速写一个元素的直接子代,可以直接使用>符号,如想直接生成div的直接子代p时可以,div>p然后回车

兄弟使用+号

结合使用

如果要建上一级的兄弟,就可以用上^

也可以使用()

快捷给元素加属性

加值的方式

添加多个属性

一起使用

快捷添加内容

结合使用

一次性自定义生成带属性的元素个数

数字($)

{}(内容)

隐式标签

‘’

alt+shift+f,格式化快捷键

css的emmet语法

CSS特性

继承

width这个属性给的值是一个百分号为单位时,他表示的是以包括他的元素宽度为基准的,比如,包裹他的是width是100,他设置的是20%,那么就是100的百分之20的width

像这种不能继承的属性,可以通过inherit强制继承

继承的注意点

层叠和权重

css属性优先级

比如·这个,在这个中权重最高的是id,由于两个都有id,所以就开始比较,舍得id多,可见,两个id都是有两个,那么就看他们第二个大的权重,可见是类选择器,第一个有两个,第二个只有一个,所以,第一个的权重会高于第二个

第一个是因为,a元素的字是默认有颜色属性的,所以不会继承父类的属性,只要自身有属性的,会优先使用自身的。

第二个是因为不允许p中包含div

css属性使用经验

列表

有序列表-ol li

块元素,独占一行

快捷方式

无序列表-ul li

定义列表-dl dt dd

列表相关的css属性

list-style-type

list-style-image

list-style-position

是不是内容之内还是之外

list-style

作业

表格

快捷方式

常用元素

加边框可以这样,但是不推荐,默认单位为px

table常用属性

tr的常用属性

如果距离不够,效果就不会展示出来

td和th常用属性

细线边框的设计

使用border-collapse:collapse,将边框合并成一像素

居中设计

第一行加粗设计

其他元素

th会默认加粗

单元格的合并

可见多了一个格子,所以需要把单元格2删除

css属性-border-spacing

表单

常用元素

input的常用属性

name的作用除了使选项互斥之外,想提交数据时,每个数据都需要一个name,因为提交的是键值对,url是协议地址路径query而query就是键值对->key=value,其中那么就充当key的值,而value就是对应的key的值,

\

无法输入,只能看

默认选择某个选项

自动聚焦

默认选择设置

multiple可以实现多选

cols设置宽,rows设置直接显示几行字

布尔属性

按钮

按钮-button元素

action是写入提交的地址的,当提交时也需要键值对,提交的内容那块需要写上一个name,这样就可以实现提交动作

可以看出,百度搜索的key值设置的是wd,那么我们想引用他的搜索内容时,也将name的值设置为wd就可以了

如果使用span的话,那么点击文字,没反应的,所以我们可以使用label,但是是使用label的话,点击文本他不会聚焦到输入框上,这个时候要使对应的文本有对应的输入框,就需要在输入框上加id,并在label使用for将其关联起来,实现点击文本,也可以聚焦输入框

选择框同理

去除input的tab键选中效果

textarea

水平垂直缩放是默认值

select和option

size=1时就代表显示一个

fieldset和legend

因为单选时,name设置都是一样的,无法区分两种区别,所以想要选择不同时上传不同的value,就需要手动添加个value,因为他与输入框属性的不同,不用自己输入值进去,像text属性时value,就是用户自己输入的值

多选·同样

form的常用属性

get和post

如果使用post,服务器会从这里获取数据,而不会像get一样在链接那了。

元素划分

块级,行内级元素

替换,非替换元素

总结

css属性-display

inline-block

因为块元素都加了这个属性,所以才是块元素的

注意点

设置了ul display:none属性,想要显示就得再改ul 该属性

css属性--visibility

css属性-overflow

从左上角开始的X轴和y轴

颜色网站

元素之间的空格

盒子

行内元素auto表示宽度包裹内容,

内容相关属性

当使用max-width时,设置了做大宽度,他就会在你设置的内容超过所设置的宽度时,自动换行,如果不设置就会,一直延伸变大

若果设置了最大高度或者宽度,内容过多溢出时,可以选择使用溢出overflow来实现滑动查看

内边距相关属性

padding的取值规律

可以用padding简写,写四个值代表上右下左,可以删最后那个左边的值和·下边的值,如果删了,那么,左和下的值就会对应右和上的值,也可以是写一个值,这样上右下左都为一个值

当输入一长串的英文字母时,超出宽度了也不会自动换行,但是汉字却可以,原因是因为默认吧无空格分隔的字母串当成一个整体的单词,而不允许单词被拆分

,所以在使用一串字母时,想让他超出宽度就换行可以手动在其中加入空格,或者换行分隔,也可以使用此属性work-break、:break-all

外边距相关属性

简写也是上右下左,规则跟padding一样的

上下两个盒子都设置同样的边距,就会重叠在一起,并不会从相加在一起,所以两个上下外边距还是20,值得注意的是,折叠的效果只针对上下。但是如果一个为20,一个为40,则取大的那个来实现效果

上下margin传递

给子类div设置左外边距20px,只有子类div的左边距改变了。

给子类div设置上外边距20px,;连着父类div一起上外边距变成了20,因为,上下外边距会进行传递

当子元素父元素底部重叠,并且为设置高度,那么这个时候子元素设置底部外边距也会出现传递现象

在父类元素添加内部的上边距

此时给子元素加上部外边距将不会与父元素进行传递

除了添加内边距外,还可以添加边框,这样也能实现取消父元素传递

在父元素,设置一个overflow属性且不是visible属性的,

也可以实现取消传递,该方法最优

上下margin折叠

父子之间也是取大的那个

border边框

边框项相关属性

后写的会把之写的层叠。 值得注意的是,border不区分顺序

边框样式的取值

边框相关的属性

边框的形状

边框妙用-实现三角形

盒子宽高为0

transform旋转的

旋转前

旋转后

行内非替换元素的注意点

加padding-bottom=10px前

后,因为,多的10px不占空间。

边框也同理

解决办法是将行内元素改成这个属性即可

csss属性-border-*-*-radius

通过该图可知,前面案例中,10px为图中水平的值,也就是55pt那,另一个为垂直的,也就是25pt

border-top-left-radius:55pt 25pt

border-radius

也可以缩写,效果跟上卖弄的一样的

原本是个正方形,且边长为200,设置成⚪取一半边长即可

当你想要给设计好的图像加边框,比如,如上的圆,那么边框的宽度会加在图像上,会让导致原来的图像跟现在的有出处,所以在加边框改边框的宽度时,也要改设置图像时的值,但是这样十分麻烦,所以我们可以用到比分比

css属性-outline

span内容并没向下移动,所以,outline并不占空间

css属性-box-shadow

表示inset可以写也可以不写,表示可以写2-4个值必须写,可写也可不写,具体的颜色

添加模糊值后

写上第四个值

添加color后。

加上inset

注意,阴影可以有多个,所以是可以实现全方位都有阴影的

灵活设置,使上面“无阴影”,周围有

css属性-text-shadow

使用规则跟box-shadow差不多,只是没有inset以及取值只取2个到3个

因为可以添加多个

一段文字的指定的行和字也就可以单独设置阴影效果,这是设置的是第一行的和第一个字

css属性-box-sizing

每个盒子都某认有一个这样的属性,而属性content-box含义是设置的width和height只是指定内容的宽高而已

而属性border-box含义是设置的width和height只是指定内容的宽高以及内边距和边框,又称为盒子的内减

box-sizing:content-box

普通文本居中

行内元素同理

行内替换元素居中

行内块级元素居中

之所以居中是触发了继承机制,将父元素设置的文本居中继承到了子类,所以可以使其文字也居中,但是不是让子元素整块居中,因为其宽度与父元素是一致的

即使设置了子类盒子的宽度,使用文本居中也不过是将设置宽度内的文本居中,不会让该宽度的盒子居中,因为实际上,该子类盒子还是一整行的,设置的宽度只是说取该盒子那个宽度的内容设置罢了

想要使设置宽度的盒子居中显示,只能在该盒子使用margin:0 auto,实现效果

margin:0 auto;实际就代表,margin-top=0,margin-bottom=0,margin-left=auto,margin-right=auto。

设置一个指定宽度的盒子,不设置他的margin-left,margin-right的值,就会都默认为0,可见设置好后,右边其实有很多空间,如图:

那么,如果margin-left,margin-right有一个设置了auto,就会把右边的空间长度全部给他,如图:

如果margin-left和margin-right都设置成auto,那么,多的空间就会平方给他们,实现居中。

如果想让盒子垂直也是居中的(上下),单纯将margin-top和margin-bottom设置为auto是不行的,因为垂直居中他有一个条件,就是,必须父元素高度为auto时,才可以生效,但是如果父元素设auto的话,父元素的高度就看的是子元素的来的,这样一来就无垂直居中一说了。

要想真的实现垂直居中,那么就可以,先将子元素向下移动父元素的高度的一半,再向上移动自己的一半,就可以实现垂直居中显示了

背景设置

css属性-background-imge

背景图是盖住背景颜色,如果图片不够大,会平铺多张效果,从而实现将背景颜色都盖住。可以设置多张背景图,图片会层叠在一起,但是会优先选择显示第一张,只有在第一张图片无法使用的时候才会显示第二张。

background-repeat

设置平铺效果的,默认值就是repeat,所以刚才可以看到,不足的地方用同样的图平铺填满

x代表横轴,也叫水平方向,那么那么就会水平平铺,垂直的就不会

css属性-background-size

写一个值的时候是水平的占比,写两个就是水平和垂直的,如下为水平的百分之33,垂直的百分之80

background-position

background-position可以给具体值,也可以给center,第一个center是水平居中,第二个是垂直居中

css sprite

公共的放到一个类里。在需要的地方使用他。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        ul{
            list-style: none;
        }
        body,ul,h5,p{
            padding: 0px;
            margin: 0px;
            
        }
        .mir{
            width: 1000px;
            margin: 0 auto;
        }
        li,p,h5{
            display: inline-block
        }
       .box{
        
           
            height: 180px;
            line-height: 180px;
          
           
        }
        .box ul li{

            margin-left: 12px;
            margin-right: 25px;
        }
        .box ul li p{
            
            height: 42px;
            line-height: 42px;
            font-size: 18px;
            font-weight: 700;
           
        }
        .box ul li h5{
            vertical-align: middle;
            width: 36px;
            height: 42px;
            background-image: url(imge/cc1d8d291ea917c0.png);
            background-repeat: no-repeat;
           
            text-indent: -999px;
            /* background-size: 113px 86.5px; */
        }
        .box ul li:nth-child(1) h5{
            background-position: 0 -192px;
        }
        .box ul .kuai{
          
            background-position: -41px -192px;


        }
        .box ul .hao{
          
            background-position: -82px -192px;
        }
        .box ul .sheng{
          
            background-position: -123px -192px;
        }

         
       

    </style>
</head>
<body>
    <div class="box mir">
        <ul>
            <li>
                <h5>多</h5>
                <p>品类齐全,轻松购物</p>
            </li>
            <li>
                <h5 class="kuai">快</h5>
                <p>多仓直发,快速配送</p>
            </li>
            <li >
                <h5 class="hao">好</h5>
                <p>正品行货,精致服务</p>
            </li>
            <li>
                <h5 class="sheng">省</h5>
                <p>天天优价,畅优精选</p>
            </li>
        </ul>
    </div>
    
</body>
</html>

实现背景图不管显示的浏览器有多小多大,画面都是居中显示的

css属性-background-attachment

如果有文本在背景上,设置好这样只会文字滚动,图片不会跟随一起滚动

一起滚动的意思是,浏览器滚动的时候元素背景会跟着一起滚

css属性-background

background-img和img的选择

css样式-cursor

css属性-定位

标准流

margin,padding定位

css属性-position

static-静态定位

relative-相对定位

相对定位数 是相对当前的相对当前的位置进行调整,比如left=20px,是相对当前位置最向右边再移动20px,而不是当前位置最左边的边距离外部元素的边的距离,right=20px,就是当前位置,最右边的边那开始,向左边移动20px

如下图,left=20px时,一p1距离为起点,p2方向移动20px

为right=20px时

移动并不会挤动别的元素

absolute是先看父元素的position的值是不是Static如果是非static就会从父元素的左上角位置进行调整,如果是static那就一直向上父级元素找非static的position,直到找到,如果一直找不到,那么就会在浏览器的左上角位置进行调整

这些属性伴随top,right,bottom,left一起使用的,而在设计这些属性的时候,如right=20px时是代表该元素距离右边边框20px,就比如,一般新写的一个元素都是靠左边的,但是设置了right=20px他就会靠右边去且离右边的边框距离为设置的20px

sub为下标,sup为上标

不满意位置还可以进行调整

当设置的图片太大,超过了电脑浏览器屏幕,可以这样设置,使图片大小与其一样

但是他是隐藏多余的地方,当我们需要他展示中间的部分可以进行微调

margin-left的百分比是相对父元素来设置的

在使用上图方法时,我们得left写死了,不是那么好。想要灵活起来,使用百分比来实现的话,直接设置left的百分比是不行的,因为,left也是相对父元素的,此时就得使用transform了,他是相对自己的

fixed-固定定位

fixed是直接相对浏览器开始调整。

she

给a元素设置了fixed,他就会脱离标准流,其他的元素就会感受不到他的存在,他后面的元素就会覆盖他如图

而如果给fixed设置top和right等属性时,是相对视口而言的,距离视口的上面,右边的px值

并且滚动画布,他也不会跟其他的一样滚动,而是一直在那个位置

滑动前

滑动后

脱标元素的特点

如果设置·了·display设置了none,那么盒子不成立,直接没有,如果display非none,那么把position的值设置为absolute/fixed,变化会根据如表所示变,如inline会变成block,inline-block会变成bloke

absolute-绝对定位

子绝父相

父元素都是position:static的,所以会按视口调整

父元素设置了非static后,就会以父元素来调整

div太大,到时候不好子元素定位,所以可以给他设置成inline,yuansu

sh设置完后多了一点。所以所有的image都需要这样重置

需要等分的时候可以使用该属性

现在可以看到字也被等分了,因为该属性被继承了

所以乐使用在该类也上覆盖其属性

十个块状,可以使用margin来居中,但是又是绝对定位的,需要将left,right设置成0,具体原因设计到一个公式,后会细说

字体的一点五倍

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        a{
            text-decoration: none;
            color: black;
            margin: 0;
            padding: 0;

           font-size: 12px;
           
        }
        .sqcode{
            position: relative;
            margin: 200px;
          
            
        }
       
        .sqcode span{
            /* display: block; */
          

        }
        .sqcode .phone{
            position:absolute;
           left: 0;
           top: 27px;
        transform: translate(-50%);
        left: 50%;
            border: 1px solid gray;
            padding: 5px 5px 0px;
        }
        .sqcode .phone span{
          display: block;
          text-align: center;
       
            
        }
        .arrow{
            position: absolute;
            width: 8px;
            height: 8px;
            border:1px solid grey;
            border-right: transparent;
            border-bottom: transparent;
            transform: rotate(45deg);
            top: -5px;
            left: 0px;
            right: 0px;
            background-color: #fff;
            margin: 0 auto;
        }
        

    </style>
</head>
<body>
    <a href="#" class="sqcode">
    <span>手机考拉</span>
    <span class="phone">
        <div class="arrow">

        </div>
    <span><img src="imge/image.png" alt=""></span>
    <span>下载app</span>
    <span>领1000元礼包</span>
</span>
    </a>
    
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        a{
            text-decoration: none;
            color: black;
            
        }
        body{
           
            padding: 0;
        }
        ul{
            list-style: none;

        padding: 0;
        }
        .beauty{
            display: inline-block;
        
          
           
           position: relative;
        }
         .beauty ul li {
            display: inline-block;

         }
         .beauty ul li a{
            display: inline-block;  
            width: 80px;
            height: 40px;
            line-height: 40px;
            border: 1px solid gray;
            border-radius: 50px;
            text-align: center;
            text-align-last: center;
            font-size: 12px; 
           margin: 5px;
            
           
         }
        .beauty ul {

            position: absolute;
            bottom: 40px;
            width: 285px;
            /* background: yellowgreen; */
            text-align: justify;
            text-align-last: justify;
            right: 0;
            left: 0;
            margin: 0 auto;

        }
        .beauty ul li a:hover{
            color: rebeccapurple;
        }

        

    </style>
    
</head>
<body>
    <div class="beauty">
        <a href="#"> <img src="imge/image.png" alt=""></a>
        <ul>
            <li><a href="#">精致护肤</a></li>
            <li><a href="#">精致护肤</a></li>
            <li><a href="#">精致护肤</a></li>
            <li><a href="#">精致护肤</a></li>
            <li><a href="#">精致护肤</a></li>
            <li><a href="#">精致护肤</a></li>
        </ul>
    </div>
   
    
    
</body>
</html>

绝对定位技巧

margin-left和margin-right默认是0

因为设置了绝对定位,且没有给该元素设置宽度,所以他的宽度是被内容撑起来的。因为margin-left和margin-right的值默认是0且right和left默认值是auto,所以这时只需要将right和left的值设置为0,那么通过公式将值代入就可使该元素的宽与父元素一样(参照元素)

想要高度也一样,公式也是大相径庭的,只需要把top和bottom设置为0即可

当我们给绝对定位的元素设置了指定的宽度和高度时,想要将他居中展示在参照元素中时,可以将left和right设置为相同的值(一般为0),因为他们默认值是auto,这个的auto是不会默认给他们平分宽度的,但是我们得margin-left和margin-right设置为auto时会平分,所以就可以将他们设置为auto实现平分,达到居中的目的

设置垂直居中也是同理

定位的对比

元素的层叠

后面的元素会盖住前面的元素

css属性-z-index

默认值是auto

浮动

定位方案

css属性-float

浮动的规则一

左浮动之后

浮动元素,要么碰到父元素停下来,要么碰到同样的浮动元素,就停下来

浮动的规则二

浮动规则三

浮动规则四

浮动规则五

浮动的规则

浮动元素会脱离标准流。会

脱离标准流设置了float就不用设置display了,因为当元素float不为none,那么大部分情况都为block属性,所以,不用再设置display,不然会有警告

当黄色设置了float:left时,因为紫色不是行内元素,是div元素,所以他不会被挤开,而是会被覆盖

虽然div元素为块元素,但是块元素内的文字是行内元素,所以会被浮动元素挤开

都设置成左浮动的,就会这样,因为浮动元素不会重叠

将父类的高度取消,将不在显示出父元素,因为,高度由内容撑着的,内容的元素都浮动就没有将其撑起的元素,自然不会显示了

当给这三个元素都设置左浮动,那么,在父元素空间宽度不够的时候,最后浮动的元素不够空间的时候会换行浮动

当前两个元素设置了左浮动后,其中第二个因为父元素空间不够,换行浮动了,第三个元素也设置左浮动,浮动的位置顶部的位置不可超过第二个的高度,所以会像第二个看齐。

哪怕是设置了右浮动也是如此

浮动的应用

在项目的时候,使用浮动可以避免多余的间隔,和混乱的对齐方式

‘margin-left’‘border-left-width’+‘padding-left’+‘padding-right’+‘border-right-width’+‘margin-right’=包含块的宽度。如果width不是‘auto’和

给前面的元素设置margin的负值时,后面的元素会往前挤

所以当,边框重叠时,可以将margin设置-1,这样后面的边框就会像前挤一个一个像素,覆盖掉多的像素

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

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

相关文章

数据结构与算法(Python)更新中

一、引入 先来看一道题: 如果 abc1000&#xff0c;且 a^2b^2c^2&#xff08;a,b,c 为自然数&#xff09;&#xff0c;如何求出所有a、b、c可能的组合? 枚举法&#xff1a; # 如果 abc1000&#xff0c;且 a^2b^2c^2&#xff08;a,b,c 为自然数&#xff09;&#xff0c;如何…

XSS闯关小游戏(前13关)

挖掘思路 1.存在可控参数 2.页面存在回显 3.使用带有特殊字符的语句去测试&#xff0c;网站是否进行了实例化 ( 例如 ">123 ) 4.构造闭合&#xff0c;实现payload的逃逸 1 name处参数可控&#xff0c;直接打即可 2 这里知道<>被实体编码了 再测试">1…

想转行AI大模型开发但不知如何下手?看这篇就够了!

原创 最近有很多小伙伴问我&#xff0c;之前从事的其他领域的编程&#xff0c;现在想要学习AI大模型开发的相关技能&#xff0c;不知道从哪下手&#xff0c;应该学习些什么&#xff0c;下面四个是我认为从事大模型开发&#xff0c;必须掌握的四个开源工具&#xff0c;大家可以…

14张图深度解密大厂秒杀系统库存设计,不是所有的库存都能支持高并发!

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 源码获取地址&#xff1a;https://t.zsxq.com/0dhvFs5oR 沉淀&#xff0c;成长&#xff0c;突破&#xff0c;帮助他人&#xff0c;成就自我。 大家好&#xff0c;我是…

应用在多钥匙应用程序-门锁、遥控器等领域的电容式触摸芯片-GT308L

触摸IC是一种集成了触摸感应技术的芯片&#xff0c;具有快速响应、高精准度和耐用性强的优点。可以实现高灵敏度的触控和准确的指令响应。在智能门锁的设计中&#xff0c;触摸IC不仅可以实现密码输入、指纹识别等功能&#xff0c;还可以与智能家居系统进行联动控制&#xff0c;…

【编程底层原理】Java常用读写锁的使用和原理

一、引言 在Java的并发世界中&#xff0c;合理地管理对共享资源的访问是至关重要的。读写锁&#xff08;ReadWriteLock&#xff09;正是一种能让多个线程同时读取共享资源&#xff0c;而写入资源时需要独占访问的同步工具。本文将带你了解读写锁的使用方法、原理以及它如何提高…

行人3d目标检测-车辆3d目标检测-3d目标检测(代码+教程)

在计算机视觉领域&#xff0c;准确地识别并定位物体对于多种应用来说至关重要&#xff0c;比如自动驾驶、机器人导航以及增强现实等。其中&#xff0c;三维边界框&#xff08;3D Bounding Box&#xff09;估计是一项关键技术&#xff0c;它允许系统不仅能够检测到图像中的物体位…

JavaScript中Windows对象下的属性和方法

1.Windows对象概念 所有的浏览器都支持Windows对象。它表示浏览器窗口 2.Boom概念 Boom&#xff1a;是指浏览器对象模型&#xff0c;它使javaScript有能力与浏览器进行对话 3.DOM概念 DOM&#xff1a;是指文档对象模型&#xff0c;通过它可以访问HTML文档中的所有元素 HT…

达梦-华为鲲鹏ARM架构下性能测试最佳实践

一、测试综述 1.1 测试目的 本次测试的目的是验证达梦数据库&#xff0c;在鲲鹏服务器下&#xff0c;不同服务器参数基于sysbench性能压力测试的表现。本次参数是根据为华为鲲鹏arm服务器调优十板斧内建议值调整 成长地图-鲲鹏开发套件开发文档-鲲鹏社区 1.2 通用指标 指标…

SpringBootWeb响应

2. 响应 前面我们学习过HTTL协议的交互方式&#xff1a;请求响应模式&#xff08;有请求就有响应&#xff09; 那么Controller程序呢&#xff0c;除了接收请求外&#xff0c;还可以进行响应。 2.1 ResponseBody 在我们前面所编写的controller方法中&#xff0c;都已经设置了…

华为云长江鲲鹏深度赋能,大势智慧稳居“实景三维+AI”领域排头兵

本文转自长江日报大武汉客户端 走出象牙塔第10年&#xff0c;武汉大势智慧科技有限公司&#xff08;以下简称“大势智慧”&#xff09;已成长为国内三维技术创新及应用领域龙头企业&#xff0c;其自主研发的“重建大师”等三维测绘软件系统在各级测绘系统占有率达到87.5%。 这…

NLP 文本匹配任务核心梳理

定义 本质上是做了意图的识别 判断两个内容的含义&#xff08;包括相似、矛盾、支持度等&#xff09;侠义 给定一组文本&#xff0c;判断语义是否相似Yi 分值形式给出相似度 广义 给定一组文本&#xff0c;计算某种自定义的关联度Text Entailment 判断文本是否能支持或反驳这个…

Windows系统修改Tomcat虚拟机内存参数

文章目录 I 修改Tomcat虚拟机内存参数基于tomcat管理程序进行配置基于setenv文件进行配置II 查看服务器状态/manager/status 查看服务器状态manager/jmxproxy 查询Tomcat指标I 修改Tomcat虚拟机内存参数 基于tomcat管理程序进行配置 查看堆内存分配情况: jmap -heap pid jst…

【Kubernetes知识点】解读HPA的 thrashing(抖动)问题

【Kubernetes知识点】解读HPA的 thrashing&#xff08;抖动&#xff09;问题 目录 1 概念 1.1 什么是 Thrashing 现象&#xff1f;1.2 HPA 中 Thrashing 产生的原因1.3 解决 Thrashing 的优化措施 1.3.1 设置合适的阈值1.3.2 使用自定义指标和基于负载的自动扩缩1.3.3 增加扩…

增强GPT4v的Grounding能力,video-level

开源链接&#xff1a; appletea233/AL-Ref-SAM2: AL-Ref-SAM 2: Unleashing the Temporal-Spatial Reasoning Capacity of GPT for Training-Free Audio and Language Referenced Video Object Segmentation (github.com) In this project, we propose an Audio-Language-Refe…

力扣最热一百题——最小覆盖子串

目录 题目链接&#xff1a;76. 最小覆盖子串 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;滑动窗口 1. 初始化 2. 构建 mapT 3. 滑动窗口 4. checkT 方法 5. 返回结果 Java写法&#xff1a; 运行时间 C写法&#x…

[Python学习日记-29] 开发基础练习2——三级菜单与用户登录

[Python学习日记-29] 开发基础练习2——三级菜单与用户登录 简介 三级菜单 用户登录 简介 该练习使用了列表、字典、字符串等之前学到的数据类型&#xff0c;用于巩固实践之前学习的内容。 三级菜单 一、题目 数据结构&#xff1a; menu { 北京: { 海淀: { …

纯css实现选项卡

<span class"flex tab" ><view :class"tabStyle(1)" click"tabClick(1)">变形监测</view><view :class"tabStyle(2)" click"tabClick(2)">渗流渗压</view></span>tabIndex:1tabClick…

src漏洞挖掘 | 记某学校网站的一次漏洞挖掘

&#x1f497;想加内部圈子&#xff0c;请联系我&#xff01; &#x1f497;文章交流&#xff0c;请联系我&#xff01;&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领…

【附实例】Python字典的各种操作

一、字典理解 Python 字典是一种可变容器模型&#xff0c;且可存储任意类型对象。字典的每个键值对用冒号 : 分割&#xff0c;每对之间用逗号 , 分割&#xff0c;整个字典包括在花括号 {} 中。 二、访问字典 ①.访问键名 my_dict {name: Alice, age: 30, city: New York} k…