|
2024-06-15
1.CSS快速入门示例及CSS导入及行内样式、本文件内style定义、外部css定义样式的优先级(就近原则)
CSS文件:
HTML文件:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 标签选择器
样式定义格式:
声明1;
声明2;*/
h1{
color: blue;
}
</style>
<link rel="stylesheet" href="css/style.css"/>
<!-- 行内样式、当前页面内定义style样式、外部引入style里定义样式
这3种优先级:就近原则
指 样式代码和这<h1>代码在物理上的远近
行内样式 肯定最近
本例子中,外部样式link标签在当前页面的<style>标签下面,
更靠近<h1>所以本例中外部样式的优先级高于内部<style>样式 -->
</head>
<body>
<!--<h1 style="color: green;">我是标题</h1>-->
<h1>我是标题</h1>
</body>
</html>
2.三种基本选择器及优先级
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
p{
color: red;
}
.practice-class{
color: blue;
}
#practice-id{
color: green;
}
</style>
</head>
<body>
<p>段落1</p>
<p class="practice-class">段落2</p>
<!--<p id="practice-id">段落3</p>-->
<!-- 3种基本选择器优先级:
id选择器>类选择器>标签选择器 -->
<p id="practice-id" class="practice-class">段落3</p>
</body>
</html>
2024-06-16
1.层次选择器
hierarchical /ˌhaɪəˈrɑː.kɪ.kəl/ 按等级划分的
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 不用id选择器、类选择器,来进行选择 */
/* 层次选择器 */
/* 1.后代选择器:选择所有后代:
太爷 爷爷 爸爸 孙子
对太爷来说,爷爷 爸爸 孙子 全是其后代 */
/*body p{
background: green;
}*/
/*ul p{
background: blue;
}*/
/* 2.子选择器:选直接后代
太爷 爷爷 爸爸 孙子
对太爷来说,爷爷是其直接后代 */
/*body>p{
background: red;
}*/
/* 3.相邻兄弟选择器
我备注:也可以理解为相邻弟弟选择器,
选择直接相邻的那个弟弟 */
/*.practice-class + p{
background: orange;
}*/
/* 4.通用选择器
我备注:也可以理解为全部弟弟选择器 */
.practice-class ~ p{
background: brown;
}
</style>
</head>
<body>
<p>p0</p>
<p>p1</p>
<p class="practice-class">p2</p>
<p>p3</p>
<ul>
<li>
<p>p4</p>
</li>
<li>
<p>p5</p>
</li>
<li>
<p>p6</p>
</li>
</ul>
<p>p7</p>
</body>
</html>
2024-06-17
1.结构伪类选择器
伪类:条件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 结构伪类选择器
伪类:条件
结构伪类选择器,
即在结构的基础上,
伪类 即条件 去选择 */
/* 在不用id、class选择器的基础上进行练习 */
/* 选择ul第一个子元素 */
ul li:first-child{
background: brown;
}
/* 选择ul最后一个子元素 */
ul li:last-child{
background: green;
}
/* 选中p1:
定位到父元素,
选择当前的第一个(子)元素。
注意:这个有个隐含条件是
要选的元素必须是p标签,
否则选不上,
即假设p的父级下的第一个元素为div,
则该div不会被选中 */
p:nth-child(1){
background: burlywood;
}
/* 选中p2:
定位到父元素,
选择当前的第二个类型为p的(子)元素,
即必须是其父元素的所有类型为p标签的元素
构成的列表中的第二个元素,
若没有这元素(例如父元素总共也没有两个p标签子元素),
则不会选中*/
p:nth-of-type(2){
background: blue;
}
/* 超链接鼠标移上去变色 */
a:hover{
background: darkorange;
}
</style>
</head>
<body>
<a href="#">验证鼠标效果</a>
<p>p1</p>
<p>p2</p>
<p>p3</p>
<ul>
<li>l1</li>
<li>l2</li>
<li>l3</li>
</ul>
</body>
</html>
2024-06-18
1.属性选择器(重要)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* .test a 后代选择器 */
.test a{
background: dodgerblue;
border-radius: 170px;
/* 我一开始不会将其变成球
要设置浮动,否则是不会变成球的
float: left,向左浮动*/
float: left;
width: 170px;
height: 170px;
/* 文字居中 */
text-align: center;
color: red;
/* 去掉下划线 */
text-decoration: none;
/*font-style: italic; 斜体*/
/*font-variant: 这个不会,不用它*/
/*font-weight: bold;*/
/*font-stretch: 不会,不用它*/
font-size: large;
/*line-height: 50px; 行高*/
/*font-family: Arial;字体*/
/* 我一开始写font: solid 10px 楷体;是错误的
font的顺序是:
下列字号font-size和font-family这俩是必须的
其余均可选
字号和行高用/分隔
1.font-style: italic; 斜体
2.font-weight: bold; 加粗
3.font-size: 50px; 字号 / line-height: 170px; 行高
4.font-family: Arial; 字体*/
font: italic bold 50px/170px Arial;
/* 外边距提供间距 */
margin-left: 17px;
}
/*属性选择器:重要*/
/* 属性类似于id+class*/
/* 根据dom元素的属性,选择dom元素*/
/*1.选择含有id属性的*/
a[id]{
background: yellow;
}
/*2.选择class属性值为first的 = */
/* (完全等于)*/
/*下面这个选不到,
因为没有class完全等于first的*/
/*a[class='first']{
background: green;
}*/
/* 这个能选到 */
/*a[class='links item first']{
background: green;
}*/
/*3.选择class属性值包含first的 *= */
a[class*='first']{
background: darkorange;
}
/*4.选择href属性以http开头的 ^= */
a[href^='http']{
background: brown;
}
/*5.选择href属性以.pdf结尾的 $= */
a[href$='.pdf']{
background: darkorchid;
}
</style>
</head>
<body>
<p class="test">
<a class="links item first">1</a>
<a href="#" class="links item" id="second">2</a>
<a href="http://www.cnblog.com" class="links item">3</a>
<a href="https://www.baidu.com" class="links item">4</a>
<a href="test.doc" class="links item">5</a>
<a href="test.pdf" class="links item">6</a>
<a href="test.jpg" class="links item">7</a>
<a href="practice.pdf" class="links item">8</a>
<a href="study.txt" class="links item">9</a>
<a href="http://test.org" class="links item">10</a>
</p>
</body>
</html>
2024-06-27
1.span标签及文字样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.span-big{
/* font-weight粗细。bold加粗 */
font-weight: bold;
/* font-family字体 */
/* 逗号分隔的,
Centaur是英文字体则用于英文,
楷体则应用于中文 */
font-family: Centaur,'楷体';
/* font-size大小 */
font-size: 50px;
/* color颜色 */
/*color: red;*/
/* rgb 红绿蓝 */
/*color: #00ff00;*/
/*color: rgb(0, 255, 0);*/
/* rgba a:透明度,取值0~1,由浅变深 */
color: rgba(0, 255, 0, 0.5);
}
</style>
</head>
<body>
<!-- span通用标签,类似于div这种 -->
欢迎学习<span class="span-big">CSS课程</span>。
</body>
</html>
2024-06-28
1.文本样式:对齐方式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 文本样式:
对齐方式:text-align */
.first-p{
text-align: center;
/*text-align: left;*/
/*text-align: right;*/
font-size: 50px;
}
</style>
</head>
<body>
<!--对齐方式-->
<h1>CSS基础</h1>
<div>
<p class="first-p">在Vue中,当你在模板中监听一个自定义事件时,通常你不需要在事件处理函数后面加上括号(),除非你想要在触发事件时立即执行某个方法并传递额外的参数(这通常不是从子组件传递的参数)。</p>
</div>
</body>
</html>
2024-06-29
1.文本样式:首行缩进
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 首行缩进:text-indent
1em为(当前样式下)一个字的大小 */
.practice-text-indent{
text-indent: 2em;
font-size: 50px;
}
</style>
</head>
<body>
<h1>CSS基础</h1>
<div>
<p class="practice-text-indent">Tomcat使用这个目录来编译JSP页面和存放临时文件。删除work目录会清除所有编译的JSP页面和临时文件,这通常有助于解决一些运行时问题,尤其是与JSP相关的问题。</p>
</div>
</body>
</html>
2024-06-30
1.文本样式:设置行高等于区域高度从而竖直方向居中、修饰(上中下划线)、两元素保持在水平方向上对齐
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 文本样式:
对齐方式:text-align */
.first-p{
text-align: center;
/*text-align: left;*/
/*text-align: right;*/
font-size: 50px;
}
/* 首行缩进:text-indent
1em为(当前样式下)一个字的大小 */
.practice-text-indent{
text-indent: 2em;
font-size: 50px;
}
/* 文本竖直方向上居中:
通过设置
行高line-height等于当前区域高度
来实现*/
.practice-line-height{
background: chartreuse;
height: 500px;
line-height: 500px;
font-size: 50px;
}
/* 修饰:下、中、上划线
text-decoration
text-decoration: underline:下划线
text-decoration: line-through:中划线
text-decoration: overline:上划线
*/
.text-decoration-underline{
text-decoration: underline;
font-size: 50px;
}
.text-decoration-line-through{
text-decoration: line-through;
font-size: 50px;
}
.text-decoration-overline{
text-decoration: overline;
font-size: 50px;
}
/* 实现两元素在水平方向上对齐
img,span 要对齐的两个元素
vertical-align: middle;
*/
img,span{
vertical-align: middle;
}
</style>
</head>
<body>
<h1>CSS基础</h1>
<div>
<p class="first-p">在Vue中,当你在模板中监听一个自定义事件时,通常你不需要在事件处理函数后面加上括号(),除非你想要在触发事件时立即执行某个方法并传递额外的参数(这通常不是从子组件传递的参数)。</p>
<p class="practice-text-indent">Tomcat使用这个目录来编译JSP页面和存放临时文件。删除work目录会清除所有编译的JSP页面和临时文件,这通常有助于解决一些运行时问题,尤其是与JSP相关的问题。</p>
<p class="practice-line-height">从您提供的代码片段来看,您确实在第一次调用 this.$f7router.navigate 方法时遗漏了将 props 选项作为路由导航的第二个参数传递。在Framework7中(或类似的路由系统中),props 选项通常用于将自定义属性传递给路由的目标组件。</p>
<p class="text-decoration-underline">修饰-下划线</p>
<p class="text-decoration-line-through">修饰-中划线</p>
<p class="text-decoration-overline">修饰-上划线</p>
<p>
<img src="images/sea.png" style="width: 100px; height: 100px;"/>
<span>您错误地将 props 对象放在了字符串拼接的末尾,而不是作为 navigate 方法的第二个参数。这导致了 props 对象没有被正确地传递到路由中。</span>
</p>
</div>
</body>
</html>
2024-07-01
1.超链接伪类
a:hovor 当鼠标悬停时的样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.book-img{
width: 200px;
height: 300px;
}
/* 去掉超链接下划线
text-decoration: none;*/
a{
text-decoration: none;
color: #000000;
}
/* 超链接伪类,
当鼠标悬停时的样式
a:hover */
a:hover{
color: orange;
font-size: 50px;
}
</style>
</head>
<body>
<a href="#">
<img class="book-img" src="images/sea.png"/>
</a>
<p>
<a href="#">码出高效</a>
</p>
<p>
<a href="#">作者:孤尽老师</a>
</p>
<p>
¥99
</p>
</body>
</html>
2024-07-02
1.文本阴影
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 文本阴影
text-shadow
参数(h-shadow, v-shadow, blur, color)
h-shadow x轴偏移
v-shadow y轴偏移
blur 模糊距离(模糊半径)
模糊半径越小越清楚
越大越模糊
color 阴影颜色
备注:
偏移,方向定义:
以窗口左上角为原点,
原点水平向右为x轴正向,
原点竖直向下为y轴正向 */
#price{
text-shadow: 50px 10px 3px red;
}
</style>
</head>
<body>
<p id="price">
¥99
</p>
</body>
</html>
2024-07-03
1.列表样式
页面:index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="css/style.css" rel="stylesheet"/>
</head>
<body>
<div id="nav">
<h2 class="title">全部商品分类</h2>
<ul>
<li><a href="#">图书</a> <a href="#">音像</a> <a href="#">数字商品</a></li>
<li><a href="#">家用电器</a> <a href="#">手机</a> <a href="#">数码</a></li>
<li><a href="#">电脑</a> <a href="#">办公</a>
<li><a href="#">家居</a> <a href="#">家装</a> <a href="#">厨具</a></li>
<li><a href="#">服装鞋帽</a> <a href="#">个护化妆</a>
<li><a href="#">礼品箱包</a> <a href="#">钟表</a> <a href="#">珠宝</a></li>
<li><a href="#">食品饮料</a> <a href="#">保健食品</a>
<li><a href="#">彩票</a> <a href="#">旅行</a> <a href="#">充值</a> <a href="#">票务</a></li>
</ul>
</div>
</body>
</html>
样式:css/style.css:
/* 通用规范是样式从最外层到内层写,
外层样式写在上方,
内层样式写在下方 */
#nav{
width: 300px;
background: darkgray;
}
.title{
font-size: 18px;
/* 加粗 */
font-weight: bold;
text-indent: 1em;
line-height: 35px;
background: red;
}
/*ul{*/
/* background: darkgray;*/
/*}*/
/* 选中所有ul下的li
层次选择器里
的后代选择器ul li{}
列表项前‘.’的样式
list-style: none;不展示
list-style: circle;空心圆
list-style: decimal;(有序)数字
list-style: square;正方形*/
ul li{
/* height给个列表项之间的间距 */
height: 25px;
list-style: none;
font-size: 14px;
text-indent: 1em;
}
a{
color: #000;
/* 去下划线 */
text-decoration: none;
}
a:hover{
color: orange;
text-decoration: underline;
}
2024-07-04
1.背景(图片)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* border
设置边框
参数分别为:
边框粗细、边框样式、边框颜色
solid:实线*/
/* background-image
设置背景图片*/
div{
width: 1200px;
height: 800px;
border: 1px solid red;
background-image: url("images/touXiang.png");
/* 默认是平铺,平铺满整个区域 */
/*background-repeat: repeat;*/
}
.div1{
/* 水平平铺 */
background-repeat: repeat-x;
}
.div2{
/* 竖直平铺 */
background-repeat: repeat-y;
}
.div3{
/* 不平铺(只显示一个) */
background-repeat: no-repeat;
}
</style>
</head>
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>
</body>
</html>
2024-07-05
1.接昨天代码,背景(图片),向菜单列表嵌入向下向右箭头图片,补充偏移相关内容:
style.css:
/* 菜单列表分别加向下和向右的箭头*/
.title{
font-size: 18px;
/* 加粗 */
font-weight: bold;
text-indent: 1em;
line-height: 35px;
/* css中都是用空格,而不是逗号分隔
直接合起来写background:
参数顺序:
background-color
background-image
url里../ 取上一层目录
background-position
即position-x、position-y
相对于(左上角)原点的
水平(x)、竖直(y)偏移量
background-repeat
repeat意思是重复*/
background: red url("../images/down.png") 260px 4px no-repeat;
}
ul li{
/* height给个列表项之间的间距 */
height: 25px;
list-style: none;
font-size: 14px;
text-indent: 1em;
/* 分开写background:
url里../ 取上一层目录
background-position
相对于(左上角)原点的偏移量*/
background-image: url("../images/right.png");
background-position: 221px 2px;
background-repeat: no-repeat;
}
2024-07-06
1.border边框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 盒子模型
border设置边框
参数顺序:
粗细、样式、颜色
粗细,例如2px;
样式,例如solid实线,
dashed,类似于带间隔的线样式*/
#box{
width: 300px;
border: 1px solid red;
/*border: 1px dashed red;*/
}
</style>
</head>
<body>
<div id="box">
<h2>用户登录</h2>
<form action="#">
<div>
<span>用户名:</span>
<input type="text" id="username"/>
</div>
<div>
<span>密码:</span>
<input type="text" id="pwd"/>
</div>
<div>
<span>邮箱:</span>
<input type="text" id="email"/>
</div>
</form>
</div>
</body>
</html>
2024-07-07
1.接昨天的border边框,及新内容:margin外边距、padding内边距
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 去掉body默认的
8px的外边距 */
body{
margin: 0;
}
h2{
font-size: 16px;
background: cadetblue;
margin: 0;
}
/* 盒子模型
border设置边框
参数顺序:
粗细、样式、颜色
粗细,例如2px;
样式,例如solid实线,
dashed,类似于带间隔的线样式
margin的一个妙用:
用于居中对齐
margin: 0 auto;
margin和padding都是:
两个参数则:上下 左右
四个参数则:
顺时针 上右下左 */
#box{
width: 300px;
border: 1px solid red;
/*border: 1px dashed red;*/
margin: 0 auto;
}
form{
background: cadetblue;
}
/* 层次选择器:后代选择器 */
.username-div input{
border: 2px dashed black;
}
.pwd-div input{
border: 2px solid darkorchid;
}
.email-div input{
border: 2px solid darkorange;
}
</style>
</head>
<body>
<div id="box">
<h2>用户登录</h2>
<form action="#">
<div class="username-div">
<span>用户名:</span>
<input type="text" id="username"/>
</div>
<div class="pwd-div">
<span>密码:</span>
<input type="text" id="pwd"/>
</div>
<div class="email-div">
<span>邮箱:</span>
<input type="text" id="email"/>
</div>
</form>
</div>
</body>
</html>
2024-07-08
1.圆角边框
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
.circle{
width: 500px;
height: 500px;
border: 10px solid red;
/* border-radius
圆角边框
参数 顺时针
4个:左上 右上 右下 左下
2个:左上(及右下) 右上(及左下)
1个:所有
border-radius值
设置的是圆角的半径
当父级是正方形,
且border-radius等于
父级长宽一半时,就是个圆
border-radius: 250px;圆*/
/*border-radius: 30px 60px 40px 80px;*/
/*border-radius: 30px 80px;*/
border-radius: 250px;
}
/* (上)半圆 */
.banYuan{
width: 500px;
height: 250px;
border: 5px solid blue;
border-radius: 250px 250px 0 0;
}
/* (右下)四分之一圆 */
.siFenZhiYiYuan{
width: 250px;
height: 250px;
border: 5px solid green;
border-radius: 0 0 250px 0;
}
</style>
</head>
<body>
<div class="circle"></div>
<div class="banYuan"></div>
<div class="siFenZhiYiYuan"></div>
</body>
</html>
2024-07-09
1.盒子阴影
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
width: 800px;
height: 500px;
border: 5px solid red;
/* 盒子阴影box-shadow
参数:水平偏移 垂直偏移 模糊半径 阴影颜色
模糊半径越大,阴影越模糊 */
box-shadow: 80px 30px 2px yellow;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
2024-07-10
1.display 块级元素 行内元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 块级元素:独占一行:
h1~h6 div p ul li
行内元素:不独占一行:
span a input
块级元素内可以
嵌套行内元素,
但行内元素不能
嵌套行内元素。
display: block;
设置为块级元素
display: inline;
设置为行内元素
display: inline-block;
设置为
保持块级元素(的高度等)
且不独占一行
display: none;
设置为不显示*/
div{
width: 500px;
height: 400px;
border: 2px solid red;
/*display: block;*/
display: inline-block;
}
span{
width: 500px;
height: 400px;
border: 2px dashed blue;
/*display: block;*/
display: inline-block;
}
</style>
</head>
<body>
<div>div内容</div>
<span>span内容</span>
</body>
</html>
2024-07-11
1.float浮动
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<div id="father">
<div class="div1">
<img src="images/car2.png"/>
</div>
<div class="div2">
<img id="sea" src="images/sea.png"/>
</div>
<div class="div3">
<img src="images/touXiang.png"/>
</div>
<div class="div4">
<span>handleName(),Vue会尝试在渲染时就执行它,而不是在事件被触发时</span>
</div>
</div>
</body>
</html>
style.css:
div{
margin: 10px;
padding: 5px;
}
#father{
border: 1px solid black;
}
/* float:浮动
left向左浮动
right向右浮动
clear: both;
清除浮动:
保持浮动的同时,
使其有块元素的效果。*/
.div1{
border: 1px dashed red;
/*display: inline-block;*/
float: left;
clear: both;
}
.div2{
border: 1px dashed blue;
/*display: inline-block;*/
float: right;
clear: both;
}
.div3{
border: 1px dashed green;
/*display: inline-block;*/
float: left;
clear: both;
}
.div4{
border: 1px dashed darkmagenta;
/*display: inline-block;*/
float: left;
clear: both;
}
#sea{
width: 200px;
height: 400px;
}
2024-07-12
1.float浮动:浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止
2.解决父级边框塌陷(共四种方法,这里先列出前两种)
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<div id="father">
<div class="div1">
<img src="images/car2.png"/>
</div>
<div class="div2">
<img id="sea" src="images/sea.png"/>
</div>
<div class="div3">
<img src="images/touXiang.png"/>
</div>
<div class="div4">
<span>浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止</span>
</div>
<div class="clear"></div>
</div>
</body>
</html>
style.css:
div{
margin: 10px;
padding: 5px;
}
#father{
border: 1px solid black;
/*height: 1000px;*/
}
/* float:浮动
left向左浮动
right向右浮动
浮动的盒子可以
向左浮动,也可以
向右浮动,
直到它的外边缘碰到
包含框或
另一个浮动盒子为止
clear: both;
清除浮动:
保持浮动的同时,
使其有块元素的效果。*/
/* 解决父级边框塌陷的方法:
1.给父级边框足够的高度
#father{
border: 1px solid black;
height: 1000px;
}
2.设置空的div,
且div设置如下3点:
(1)左右清除浮动,
(2)margin为0,
(3)padding为0
备注:
clear: left;清除左侧浮动
clear: right;清除右侧浮动
clear: both;清除两侧浮动
clear: none;不清除浮动
常用的是clear: both;
*/
.div1{
border: 1px dashed red;
/*display: inline-block;*/
float: left;
clear: both;
}
.div2{
border: 1px dashed blue;
/*display: inline-block;*/
float: right;
clear: both;
}
.div3{
border: 1px dashed green;
/*display: inline-block;*/
float: left;
clear: both;
}
.div4{
border: 1px dashed darkmagenta;
/*display: inline-block;*/
float: left;
clear: both;
}
#sea{
width: 200px;
height: 400px;
}
.clear{
clear: both;
margin: 0;
padding: 0;
}
2024-07-13
1.解决父级边框塌陷的第三种方式:设置父级元素overflow: hidden
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
img{
/*float: left;*/
}
#content{
border: 1px solid black;
width: 200px;
height: 100px;
/* 解决父级边框塌陷的第三种方式:设置父级元素overflow: hidden */
overflow: hidden;
/* overflow: scroll; 滚动*/
/*overflow: scroll;*/
}
</style>
</head>
<body>
<div id="content">
<img src="images/car2.png"/>
<div>哈哈,指一个人发出的笑声,高兴开心欢乐时的状态,抒发快乐的心情,表现一个人很开心快乐的状态。也指人通常用来开玩笑。一种很逗的心情。</div>
</div>
</body>
</html>
2024-07-14
1.解决父级边框塌陷的第四种方式,也是最推荐的方式:对父级元素设置伪类
#father:after{
content: '';
display: block;
clear: both;
}
解决父级边框塌陷四种方式完整代码:
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="css/style.css"/>
</head>
<body>
<div id="father">
<div class="div1">
<img src="images/car2.png"/>
</div>
<div class="div2">
<img id="sea" src="images/sea.png"/>
</div>
<div class="div3">
<img src="images/touXiang.png"/>
</div>
<div class="div4">
<span>浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止</span>
</div>
<!-- <div class="clear"></div>-->
</div>
</body>
</html>
style.css:
div{
margin: 10px;
padding: 5px;
}
#father{
border: 1px solid black;
/*height: 1000px;*/
/*overflow: hidden;*/
}
/* float:浮动
left向左浮动
right向右浮动
浮动的盒子可以
向左浮动,也可以
向右浮动,
直到它的外边缘碰到
包含框或
另一个浮动盒子为止
clear: both;
清除浮动:
保持浮动的同时,
使其有块元素的效果。*/
/* 解决父级边框塌陷的方法:
1.给父级边框足够的高度
#father{
border: 1px solid black;
height: 1000px;
}
2.设置空的div,
且div设置如下3点:
(1)左右清除浮动,
clear: both;
(2)margin为0,
(3)padding为0
备注:
clear: left;清除左侧浮动
clear: right;清除右侧浮动
clear: both;清除两侧浮动
clear: none;不清除浮动
常用的是clear: both;
3.设置父级元素overflow: hidden
4.对父元素设置伪类
这是最好的方式
#father:after{
content: '';
display: block;
clear: both;
}
*/
.div1{
border: 1px dashed red;
/*display: inline-block;*/
float: left;
clear: both;
}
.div2{
border: 1px dashed blue;
/*display: inline-block;*/
float: right;
clear: both;
}
.div3{
border: 1px dashed green;
/*display: inline-block;*/
float: left;
clear: both;
}
.div4{
border: 1px dashed darkmagenta;
/*display: inline-block;*/
float: left;
clear: both;
}
#sea{
width: 200px;
height: 400px;
}
.clear{
clear: both;
margin: 0;
padding: 0;
}
#father:after{
content: '';
display: block;
clear: both;
}
2024-07-15
1.开始学习定位:相对定位、绝对定位、z-index
今天先是最开始的默认情况:index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
margin: 10px;
padding: 5px;
font-size: 12px;
line-height: 25px;
}
#father{
border: 1px solid black;
padding: 0;
}
#first{
background-color: cadetblue;
border: 1px dashed blue;
}
#second{
background-color: yellow;
border: 1px dashed darkorange;
}
#third{
background-color: burlywood;
border: 1px dashed brown;
}
</style>
</head>
<body>
<div id="father">
<div id="first">第一个盒子</div>
<div id="second">第二个盒子</div>
<div id="third">第三个盒子</div>
</div>
</body>
</html>
2024-07-16
1.相对定位:
相对定位:相对于该元素原来的位置进行偏移
position: relative;
元素仍在文档流中,其原始位置仍被保留。
(所以示例中div3已经向下偏移出父级div了。但因为其原始位置仍被保留了,所以没出现父级边框塌陷
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
body{
padding: 50px;
}
div{
margin: 10px;
padding: 5px;
font-size: 12px;
line-height: 25px;
}
#father{
border: 1px solid black;
padding: 0;
}
/* 相对定位:相对于该元素原来的位置进行偏移
position: relative;
元素仍在文档流中,其原始位置仍被保留。
(所以示例中div3已经向下偏移出父级div了。但因为其原始位置仍被保留了,所以没出现父级边框塌陷)
top right bottom left*/
#first{
background-color: cadetblue;
border: 1px dashed blue;
position: relative;
top: -60px;
left: 20px;
}
#second{
background-color: yellow;
border: 1px dashed darkorange;
}
#third{
background-color: burlywood;
border: 1px dashed brown;
position: relative;
right: 30px;
bottom: -60px;
}
</style>
</head>
<body>
<div id="father">
<div id="first">第一个盒子</div>
<div id="second">第二个盒子</div>
<div id="third">第三个盒子</div>
</div>
</body>
</html>
示例中div3已经向下偏移出父级div了。但因为其原始位置仍被保留了,所以没出现父级边框塌陷。效果:
2024-07-17
1.相对定位练习
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#father{
text-align: center;
}
#sequar{
border: 1px solid red;
width: 300px;
margin: 0 auto;
padding: 10px;
/* 直接设置父级边框高度,来解决父级边框塌陷 */
height: 300px;
}
/* 父级正方形设置伪类,解决父级边框塌陷。但这里测试不好使。
改为直接设置父级边框高度,来解决父级边框塌陷 */
/*#sequar:after{
content: '';
display: block;
clear: both;
}*/
a{
width: 100px;
height: 100px;
background-color: hotpink;
color: white;
/*display: inline-block;解决原默认inline设置width、height失效问题。
同时又因为通过设置父级高度解决了父级边框塌陷问题,
所以就不用担心我一开始练习时用block导致整体5行,不会解决父级塌陷的问题了。
而inline-block,左右会有间距。所以这里就用block。*/
display: block;
line-height: 100px;
text-decoration: none;
}
a:hover{
background-color: blue;
}
#a2{
position: relative;
top: -100px;
left: 200px;
}
#a4{
position: relative;
top: -100px;
left: 200px;
}
#a5{
position: relative;
top: -300px;
left: 100px;
}
</style>
</head>
<body>
<div id="father">
<div id="sequar">
<!-- a标签一定要写上href="",才能有超链接(小手)效果 -->
<a id="a1" href="#">链接1</a>
<a id="a2" href="#">链接2</a>
<a id="a3" href="#">链接3</a>
<a id="a4" href="#">链接4</a>
<a id="a5" href="#">链接5</a>
</div>
</div>
</body>
</html>
效果:
2024-07-18
1.绝对定位:position: absolute;
1.1相对于已定位的父级元素位置进行定位,如果没有已定位的父级元素,则相对于浏览器定位。
1.2脱离标准文档流,其在文档流中的原始位置不会被保留。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
div{
margin: 10px;
padding: 5px;
font-size: 12px;
line-height: 25px;
}
#father{
border: 1px solid black;
padding: 0;
position: relative;
}
#first{
background-color: cadetblue;
border: 1px dashed blue;
}
/* 绝对定位:position: absolute;
1.相对于已定位的父级元素位置进行定位,如果没有已定位的父级元素,则相对于浏览器定位。
2.脱离标准文档流,其在文档流中的原始位置不会被保留。*/
#second{
background-color: yellow;
border: 1px dashed darkorange;
position: absolute;
/*left: 100px;*/
/*top: 300px;*/
right: 300px;
}
#third{
background-color: burlywood;
border: 1px dashed brown;
}
</style>
</head>
<body>
<div id="father">
<div id="first">第一个盒子</div>
<div id="second">第二个盒子</div>
<div id="third">第三个盒子</div>
</div>
</body>
</html>
2024-07-19
1.positon: fixed;固定定位。
1.1这里div1绝对定位因为所有父级都没有定位,所以根据浏览器定位,但浏览器有滚动效果,基于浏览器定位的绝对定位是受滚动条影响的。 随着页面滚动,该div1的位置也会动。
1.2position: fixed;固定定位。根据之前上网查,我的理解是可以认为是相对于浏览器的(可视)窗口进行定位。其不受页面是否有滚动影响。div2都会固定在浏览器可视窗口的最右下角。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/* 这里将body高度设为高于屏幕实际高度,目的是测试滚动条对绝对定位、固定定位的影响。从而更好的理解两种定位。 */
body{
height: 1000px;
}
/* 这里div1绝对定位因为所有父级都没有定位,所以根据浏览器定位,但浏览器有滚动效果,基于浏览器定位的绝对定位是受滚动条影响的。
随着页面滚动,该div1的位置也会动。*/
div:nth-of-type(1){
width: 100px;
height: 100px;
background-color: red;
position: absolute;
right: 0;
bottom: 0;
}
/* position: fixed;固定定位。根据之前上网查,我的理解是可以认为是相对于浏览器的(可视)窗口进行定位
其不受页面是否有滚动影响。div2都会固定在浏览器可视窗口的最右下角。*/
div:nth-of-type(2){
width: 50px;
height: 50px;
background-color: orange;
position: fixed;
right: 0;
bottom: 0;
}
</style>
</head>
<body>
<div>div1</div>
<div>div2</div>
</body>
</html>
效果:
2024-07-20
1.z-index设置图层高度,opacity设置透明度,取值在0~1之间
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<div id="content">
<ul>
<li><img src="images/SpringBootBackground.jpg"/></li>
<li class="tipBackground"></li>
<li class="tipText">学SpringBoot,找狂神说</li>
<li>时间:2099-01-01</li>
<li>地点:火星基地</li>
</ul>
</div>
</body>
</html>
style.css:
#content{
margin: 0;
padding: 0;
font-size: 12px; /* 字体12px,行高25px是常用的一个选择组合 */
line-height: 25px;
border: 1px solid #000000;
width: 140px;
}
ul{
margin: 0;
padding: 0;
list-style: none; /* 去掉列表项前符号 */
position: relative; /* 给url一个定位,用于子元素li“学SpringBoot,找狂神说"可以绝对定位 */
}
img{
width: 141px;
height: 117px;
}
.tipText, .tipBackground{
position: absolute;
top: 90px;
width: 140px;
height: 25px;
}
.tipText{
z-index: 999; /* z-index设置图层高度 */
color: white;
}
.tipBackground{
background: #000000;
opacity: 1; /* 透明度,取值在0~1之间 */
}
至此狂神说CSS教程已学完。
来源:https://www.cnblogs.com/pingfanliliang/p/18250159 |