HTML5+CSS-4

简介: 21、float浮动文档流:文档流是文档中可显示对象在排列时所占用的位置float特性:加浮动的元素会脱离文档流,会延迟父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动的元素进行排列

21、float浮动

文档流:文档流是文档中可显示对象在排列时所占用的位置

float特性:加浮动的元素会脱离文档流,会延迟父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动的元素进行排列

float取值:left、right、none(默认)

浮动元素不会撑开父容器的大小,只有同属于文档流才可以撑开

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    body{
      border: 1px black solid;
    }
    #box1{
      width: 100px;
      height: 100px;
      background-color: yellow;
      float: left;
    }
    #box2{
      width: 200px;
      height: 200px;
      background-color: red;
      float: left;
    }
    </style>
  </head>
  <body>
        <div id="box1"></div>
    <div id="box2"></div>
  </body>
</html>

202205190056290.png

由于浮动,此时body高度为0

如果将box2的浮动去掉,则body的高度会被box2撑开到200px

float注意点

1.只会影响后面的元素
如果只给box2设置浮动,则如下


202205190056175.png2.内容默认提升半层


 202205190056123.png

  1. 蓝色块为1层,蓝色块上的文字为1.5层,红色为2层,所以实现文字环绕浮动效果

3.默认宽根据内容决定
如果没设置宽时,本身div容器会和父容器宽相同,然而设置浮动之后宽会由内容决定

4.换行排列

202205190056199.png202205190056978.png202205190056044.png



202205190056562.png

202205190057441.png

5.主要给块元素添加,但也可以给内联元素添加

块元素原本按照上下排列,添加浮动后可以实现左右排列而方便布局

清除浮动

上下排列:clear

left、right、both

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
        <title></title>
    <style>
    #box1{width: 100px; height: 100px; background-color: red; float: left;}
    #box2{width: 200px; height: 200px; background-color: #4CC9FF; /* clear: left; */}
    </style>
  </head>
  <body>
    <div id="box1"></div>
    <div id="box2"></div>
  </body>
</html>


202205190057848.png

加上clear: left;–>

202205190057426.png

嵌套排列:


1,固定宽高:不推荐,不能把高度固定死,不适合做自适应的效果


2.父元素浮动:不推荐,因为父容器浮动也会影响到后面的元素


3.overflow:hidden(BFC规范),如果有子元素想溢出,那么会受到影响


4.display:inline-block,不推荐,父容器会影响到后面的元素

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    /* #box1{width: 100px; height: 100px; background-color: red; float: left;}
    #box2{width: 200px;   height: 200px; background-color: #4CC9FF; clear: left;} */
    #box1{width: 200px; border: 1px black solid; /* overflow: hidden */ display: inline-block}
    #box2{width: 100px; height: 200px; background-color: red; float: left} 
    </style>
  </head>
  <body>
    <!-- <div id="box1"></div>
    <div id="box2"></div> -->
    <div id="box1">
      <div id="box2">
      </div>
    </div>
    aaa
  </body>
</html>

5.设置空标签:不推荐,会多添加一个标签

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    #box1{width: 200px; border: 1px black solid;}
    #box2{width: 100px; height: 200px; background-color: red; float: left} 
    #clearfloat{clear: both}
    /*使得clearfloat不受box2的浮动影响,即这两个div上下排列
      又因为clearfloat与box1都属于文档流,可以撑开box1*/
    </style>
  </head>
  <body>
    <div id="box1">
      <div id="box2"></div>
      <div id="clearfloat"></div>
    </div>
    aaa
  </body>
</html>
  1. 6.after伪类:推荐,是空标签的加强版,目前各大公司的做法
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <style>
  #box1{width: 200px; border: 1px black solid;}
  #box2{width: 100px; height: 200px; background-color: red; float: left} 
  .clear::after{content:""; clear: both; display: block;}
     /* clear标签只会对块起作用,而content内容是内敛,所以需要先display换为块*/
  </style>
  <body>
    <div id="box1" class="clear">
      <div id="box2">
      </div>
    </div>
    aaa
  </body>
</html>

22、position定位

css中position属性用于指定一个元素在文档中的定位方式,top、right、bottom、left属性则决定了该元素的最终位置

取值

1.static(默认)

2.relative

3.absolute

4.fixed

5.sticky

relative相对定位

1.如果没有定位偏移量,对元素本身没有任何影响

2.不使元素脱离文档流

3.不影响其他元素布局

4.left、top、right、bottom是相对于当前元素自身进行偏移的

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    #box1{width: 100px; height: 100px; background-color: red;}
    #box2{width: 100px; height: 100px; background-color: yellow; position: relative;
    left: 100px; top: 100px;}
    #box3{width: 100px; height: 100px; background-color: blue;}
    </style>
  </head>
  <body>
    <div id="box1"></div>
    <div id="box2"></div>
    <div id="box3"></div>
  </body>
</html>

2fd1814d5e86b775b549da822bf106b8.png

absolute绝对定位

1.使元素完全脱离文档流

2.使内联元素支持宽高(让内联具备块特性)

3.使块元素默认的宽根据内容决定(让块具备内联的特性)

4.如果有定位祖先元素相对于定位祖先元素发生偏移,没有定位祖先元素相对于整个文档发生偏移(绝对、相对、固定)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style type="text/css">
      #box1{width: 300px; height: 300px; border: 1px black solid; margin: 50px;}
      #box2{width: 100px; height: 100px; background-color: red;}
    </style>
  </head>
  <body>
    <div id="box1">
      <div id="box2"></div>
    </div>
  </body>
</html>

效果为:

d2b6d1d3cf58106c0385f040701165a6.png

如果给box2加上绝对定位position: absolute; left: 10px; top: 10px

则变为:

cdf66bc94323e7478bdb22918526a5c5.png

如果给box1加上定位position: relative

则变为:

c7963588382f45df6fe4682c7178427f.png

即定位是相对于最近一个有定位的元素,如果没有则相对于整个文档

fixed固定定位

1,使元素完全脱离文档流

2.使内联元素支持宽高(让内联具备块特性)

3.使块元素默认的宽根据内容决定(让块具备内联的特性)

4.相对于整个浏览器窗口进行偏移,不受浏览器滚动条的影响,即无论怎么滚动都在那个位置,且与祖先元素无关

可以用于做返回顶部功能

sticky黏性定位

在指定的位置,进行黏性操作

div{background:red;position:sticky; top: 0

拖动前(无区别):

177178701c0a68e8b47d60952ed6e8b1.png

拖动滚动条后:

8443e594765bb941827ca0547efdda04.png


z-index定位层级

  • 默认层级为0
    如果没有设置层级时,两个容器重叠时,默认后设置的图层会在上面,此时可以通过设置容器的层级来更改。
  • 嵌套时候的层级问题
  • 比较层级时通过外层比较,一个嵌套结构如果外层的层级低,里层的再高也不起作用,只有当外层没有设置层级时,里层的层级才会起作用

导航栏的实现

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    *{margin: 0; padding: 0;}
    ul{list-style: none;}
    #menu{width: 100px; height: 24px; border: 1px black solid; margin: 20px auto; text-align: center; position: relative;}
    #menu ul{width: 100px; border: 1px black solid; position: absolute; left: -1px; top: 24px; display: none; background-color: white;}
    #menu:hover ul{display: block;}
    #menu li:hover{background-color: antiquewhite;}
    p{text-align: center;}
    </style>
  </head>
  <body>
    <div id="menu">
      卖家中心
      <ul>
        <li>列表项</li>
        <li>列表项</li>
        <li>列表项</li>
        <li>列表项</li>
      </ul>
    </div>
    <p>测试段落</p>
  </body>
</html>


23、CSS添加省略号

  • width 必须有一个固定的宽
  • whit-space:nowrap 不让内容折行
  • overflow:hidden 隐藏溢出的内容
  • text-overflow:ellipsis 添加省略号
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
    #content{width: 100px; height: 20px; border: 1px black solid; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}
    </style>
  </head>
  <body>
    <div id="content">
      再没更卑微oh no,即使唉声叹气还要当趣味
    </div>
  </body>
</html>

该操作只能实现单行的省略

24、CSS Sprite

特性:CSS雪碧也叫做CSS精灵,是一种网页图片应用处理方式,它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去加载


好处:可以减少图片的质量,网业的图片加载速度快


减少图片的请求次数,加快网页的打开

25、CSS圆角设计

border-radius:20px

border-radius:20px


取值实际表示的是相切圆的半径


当取值等于块的宽和高的一半时(或50%),则得到一个圆


写两个值时,前一个代表左上和右下,后一个代表左下和右上


写四个值时,表示从左上开始顺时针到左下


取值为20px/40px时,代表相切的是一个宽为20px,高为40px的椭圆


height:100px;width:50px;border-radius:100px 100px 0 0则得到半圆


相关文章
|
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--网页标签 下)