HTML5+CSS-3

简介: 标签选择器(TAG选择器)div{}适用的场景:去掉某些标签的默认样式时

10、CSS样式继承

文字相关的样式可以继承

布局相关的样式不能继承(如border,height等)

但是可以使用border:inherit来手动继承父样式

11、CSS优先级

相同样式优先级

当设置相同样式时,后面的优先级较高,但不建议出现重复设置样式的情况

内部样式和外部样式

内部样式和外部样式优先级相同,如果都设置了相同样式,那么后写入的引入方式优先级高

单一样式优先级

style行间>id>class>tag>*>继承

style行间>id>class>tag>*>继承

权重1000、100、10、1(代表的是等级,即使100个1也小于10)

<div id="elem" style="color:blue"句中的style称为style行间

!important

提升样式优先级,非规范方式,不建议使用

#elem{color:red !important}

不能针对继承的属性进行优先级的提升

标签+类与单类

标签+类的优先级大于单类

群组优先级

群组选择器与单一选择器优先级相同,靠后写的优先级高

层次优先级

权重比较

ul li .box p input{} 1+1+10+1+1


.hello span #elem 10+1+100


约分比较

ul li .box p input{} -->li p input{}


.hello span #elem -->#elem{}


尽量写三层以内的层次

12、CSS盒子模型

组成

content–>padding–>border–>margin


物品 填充物 包装盒 盒子间的间距


content:内容区域 width和height组成的


padding:内边距(内填充)


只写一个值:上下左右

写两个值:上下、左右

写四个值:上、右、下、左

单一样式只能写一个值:padding-left/right/top/bottom


margin:外填充(两个盒子之间的间距)


背景颜色会填充到margin以内的区域(content,padding,border),不包括margin


文字会在content区域


padding不能为负值,而margin可以为负数(两个盒子相交)

96885a659fa9e65a09bc86613508789d.png

box-sizing

box-sizing为盒子的尺寸,可以改变盒子模型的展示形态


默认值:content-box:width、height作用于content


border-box:width、height作用于content,padding和border


使用场景:


不用再去计算一些值(例如给定可以分配的范围,如果使用content-box需要计算多少的width加上padding后不会超过)

解决一些百分比的问题(如果设置一个占百分之百的盒子,后又加上边框和填充则会超过范围,出现滚动条,若设置为border-box则刚好

盒子模型的一些问题

margin叠加问题

上下margin同时存在的时候,会取上下值中较大的作为边距(左右则不会有该问题)

解决方案:

  • BFC规范
  • 想办法只给一个元素添加间距

margin传递问题

margin传递的问题只会出现在嵌套的结构中,且只有margin-top会有传递的问题,其他三个方向是没有传递问题的

解决方案:

  • BFC规范
  • 给父容器加边框
  • margin换成padding
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
      #box1{
        width: 200px;
        height: 200px;
        background-color: red;
      }
      #box2{
        width: 100px;
        height: 100px;
        background-color: blue;
                margin-top: 100px;
      }
    </style>
  </head>
  <body>
    <div id="box1">
      <div id="box2">
      </div>
    </div>
  </body>
</html>

ebeb94989ae30ba962904f32319f6e73.png

margin-top: 100px;改为margin-left: 100px

ed96449171e9703c78c754d6cb2564be.png

拓展

margin的居中

(margin可以左右自适应,不能上下自适应)


margin-left:auto——左边全都是空白,盒子右靠齐


margin-right:auto——右边全都是空白,盒子左靠齐


margin:0 auto——居中


width和height不设置的时候对盒子模型的影响

如果宽度设置为百分之百,添加边框后会超过父级盒子的大小


如果不设置,则宽度永远保持与父级一致


设置为100%,padding-left:50px:

13、标签分类

按类型

block(块):div、p、ul、li、h1…


1、独占一行


2、支持所有样式


3、不写宽的时候跟父容器的宽相同


4、所占区域是一个矩形


inline(内联):span、a、em、strong、img(因为img也是替换元素所以可以设置宽高),


1、挨在一起的


2、有些样式不支持,比如width,height、margin(左右支持,上下不支持)、padding(左右支持、上下不支持)


3、不写宽时,宽度由内容决定


4、所占的区域不一定时矩形


5、内敛标签之间会有空隙,原因是换行产生的(可以通过在body把font-size全换成0然后在需要输入文本的地方重新设置字体大小,这样间隙中的空格大小则为0)


inline-block:input、select…


1、挨在一起,但是支持宽高


2、所占区域是一个矩形


3、标签之间会有空隙


布局一般用块标签,修饰文本一般用内联标签

按内容

  • Flow:流内容
  • Metadata:元数据
  • Sectioninng:分区
  • Heading:标题
  • Phrasing:措辞
  • Embedded:嵌入的
  • Interactive:互动的

按显示

替换元素:浏览器根据元素的标签和属性,来决定元素的具体显示内容(没有属性的话本身没有显示内容)

img、iput

非替换元素:将内容直接告诉浏览器,将其显示出来

div、h1、p

14、显示框类型

display

  • block
  • inline
  • block-inline
  • none:不进行显示

可以将原本属于block的div标签更改为inline,

注:display:none——不占空间的隐藏

visibility:hidden——占空间的隐藏

15、标签嵌套规范

块标签可以嵌套内联标签

块标签不一定能嵌套块标签(比如p不能嵌套div)

内联标签不呢个嵌套块标签(a标签除外,a可以嵌套块)

  • ul、li
  • dl、dt、dd
  • table、tr、td

16、overflow溢出隐藏

overflow

  1. visible:默认显示
  2. hidden:裁剪隐藏
  3. scroll:下方和右方都出现滚动条,不管是否溢出
  4. auto:只有溢出方向出现滚动条。
  5. x轴、y轴:overflow-x、overflow-y可对下方和右方分别设置

默认:

2693a319f53c55ba2958a0746b7e2de8.png


hidden:

a9accea1216ed04704adfc983b2b7f76.png

17、透明度与手势

opacity:0(透明)-1(不透明)0.5为半透明

占空间,且所有的子内容也会透明!

rgba:前三个值设置背景颜色,最后一个值设置透明度(0-1)

可以让指定的样式透明,而不影响其他样式(其中的文字不会被透明)

cursor:手势

auto:自动变化(默认的手势)

default:普通箭头

要实现自定义手势:

  • 准备图片:.cur、ico
  • cursor:url(./img/cursor/ico),auto

18、最大、最小宽高

min-width:宽度大于等于…(内容大于值时则自动增大宽)

max-width:宽度小于等于…(内容小于值时则自动减小宽)

min-height:高度大于等于…

max-height:高度小于等于…

%单位:换算–>以父容器的大小进行换算,跟祖先无关


一个容器怎么适应屏幕的高:


html,body{height:100%}


.container{height:100%}

19、CSS默认样式

有些标签有默认样式,有些标签没有默认样式

没有默认样式:div、span…

有默认样式:body、h1…h6、p、ul…

body–> margin:8px

h1–> margin(上下):21.44px,font-weight:bold

p–> margin(上下):16px

ul–> margin(上下):16px padding(左):40px

list-style:disc

a–> text-decoration:underline

20、CSS reset

简单的CSSreset:*{margin:0;padding:0}


优点:不用考虑哪些标签有默认的margin和padding


缺点:稍微影响性能(会对没有默认值的标签如div再次设置)


ul{list-style:none;}


a{text-decoration:none;color:#666}


a:hover{text-decoration:underline;color:red}


img{display:block}


解决的现象:图片跟容器底部有一些空隙


出现该现象的原因:内联元素的对齐方式是按照文字基线对齐的,而不是文字底线对齐的


第二种解决方法:


vertical-align:baseline;基线对齐


vertical-align:bottom;底线对齐


写具体页面或一个布局效果的时候:


写结构

css重置样式

写具体样式


相关文章
|
2月前
|
XML 前端开发 JavaScript
Html:CSS介绍
Html:CSS介绍
47 1
|
2月前
|
前端开发
Html:CSS的书写位置
Html:CSS的书写位置
25 0
|
29天前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML和CSS之旅
【9月更文挑战第32天】在这个数字化的时代,拥有一个个人博客不仅是展示自我的平台,也是技术交流的桥梁。本文将引导初学者理解并实现一个简单的个人博客网站的搭建,涵盖HTML的基础结构、CSS样式的美化技巧以及如何将两者结合来制作一个完整的网页。通过这篇文章,你将学会如何从零开始构建自己的网络空间,并在互联网世界留下你的足迹。
|
29天前
|
前端开发 JavaScript 搜索推荐
打造个人博客网站:从零开始的HTML与CSS之旅
【9月更文挑战第31天】在这个数字时代,拥有一个个人博客网站是展示自我、分享知识和连接世界的重要方式。本文将引导你通过简单的HTML和CSS知识,一步步构建起你的在线空间。无论你是编程新手还是希望通过实践加深理解,这篇文章都将是你的理想指南。我们将探索基本概念,实现页面布局,并点缀以个性化样式,最终将静态页面转变为动态交互式网站。准备好了吗?让我们开始吧!
|
2月前
|
前端开发 JavaScript
HTML+JavaScript+CSS DIY 分隔条splitter
HTML+JavaScript+CSS DIY 分隔条splitter
|
2月前
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
12 2
|
2月前
|
JavaScript 前端开发
JavaScript HTML DOM - 改变CSS
JavaScript HTML DOM - 改变CSS
24 4
|
2月前
|
前端开发 数据安全/隐私保护 容器
HTML+CSS 水滴登录页
该代码实现了一个创意的水滴登录页面,包含一个水滴形状的登录框与两个按钮(忘记密码和注册)。登录框包括用户名、密码输入框及登录按钮。页面设计独特,采用渐变色与动态效果,增强了交互性和视觉美感。以下为关键实现步骤: - 重置默认样式。 - 设置页面背景颜色和尺寸。 - 定义登录表单容器的布局、位置和尺寸。 - 设置登录表单内容样式,包括3D效果和过渡动画。 - 创建伪元素增强水滴效果。 - 设定输入框容器和输入框样式。 - 为提交按钮、忘记密码和注册按钮设定特定样式,并添加悬停效果。
WK
|
2月前
|
存储 移动开发 前端开发
HTML5和CSS5有什么区别
HTML5和CSS5在网页设计中扮演不同角色。HTML5是超文本标记语言的第五版,通过新特性如实时更新、跨平台运行及更好的安全性等,定义网页内容和结构。尽管常说CSS5,实际最新的CSS版本包含多个模块如CSS Grid和Flexbox,主要用于控制网页布局和样式,提供强大的选择器、动画支持和响应式设计,与HTML5相辅相成,共同构建现代网页的基础架构。
WK
42 3
|
2月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)