记录学习 @搬砖界泰斗这只小狐狸 的静态QQ登陆页面源码,了解静态登陆页面如何书写&&拓宽自己对css的理解
Q1:用css调节子级元素位置时什么时候调节margin,什么时候调节padding?
A1:margin对外,padding对内
e.g.要实现一个这样的排版
有一个大大盒子fafather,里面其中一个是大盒子father,再有两个小盒子,son-img&&son-p
<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>演示文案1</title>
<link rel="stylesheet" href="./登录.css">
</head>
<body>
<div class="fafather">
<div class="father">
<div class="son-img">img</div>
<div class="son-p">p</div>
</div>
<div class="other"></div>
</div>
</body>
</html>
- 整体位置在页面的左上角距离左边70px
无脑调节father的margin【调节father在上级fafather里的位置】
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: aqua;
}
.fafather {
float: left;
background-color: antiquewhite;
width: 100%;
height: 100px;
}
.father{
margin: 0 70px;
float: left;
width: 33%;
height: 100px;
background-color: azure;
}
.other{
float: right;
margin: 0 5px;
width: 50%;
height: 100px;
background-color: black;
}
.son-img{
float: left;
height: 100px;
width: 100px;
background-color: rgb(94, 94, 194);
}
.son-p{
/* float: right; */
background-color: rgb(44, 196, 166);
height: 100%;
/* width: 300px; */
}
- son-img和son-p之间距离存在距离
也别调节什么padding margin了,直接用float-left,float-right绝绝子
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: aqua;
}
.fafather {
float: left;
background-color: antiquewhite;
width: 100%;
height: 100px;
}
.father{
margin: 0 70px;
float: left;
width: 33%;
height: 100px;
background-color: azure;
}
.other{
float: right;
margin: 0 5px;
width: 50%;
height: 100px;
background-color: black;
}
.son-img{
float: left;
height: 100px;
width: 100px;
background-color: rgb(94, 94, 194);
}
.son-p{
float: right;
background-color: rgb(44, 196, 166);
height: 100%;
width: 300px;
}
CNCLD1:基本上跨级用margin,同级用float-X属性
p.s.一次性调节上下左右,之间用空格隔开【上 右 下 左,上 左右 下,上下 左右】
我靠,感觉自己会布局了!
然而并没有,我要有>2个元素水平放怎么办?
还是用flex布局
float用于2个盒子排布,flex更flex哈哈哈
<!DOCTYPE html>
<html lang="ch">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>演示文案1</title>
<link rel="stylesheet" href="./登录.css">
</head>
<body>
<div class="fafather">
<div class="father">
<div class="son-img">img</div>
<div class="son-p1">p</div>
<div class="son-p2">p</div>
<div class="son-p3">p</div>
</div>
<div class="other"></div>
<div class="another"></div>
<div class="others"></div>
</div>
</body>
</html>
*{
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
background-color: aqua;
}
.fafather {
/* float: left; */
background-color: antiquewhite;
width: 100%;
height: 100px;
display: flex;
flex-direction: row;
}
P{
display:block;
}
.father{
margin: 0 70px;
/* float: left; */
width: 33%;
/* height: 100px; */
background-color: azure;
display: flex;
flex-direction: row;
}
.other{
/* float: right; */
margin: 0 5px;
width: 50%;
/* height: 100px; */
background-color: black;
}
.another{
/* float: right; */
margin: 0 5px;
width: 50%;
/* height: 100px; */
background-color: black;
}
.others{
/* float: right; */
margin: 0 5px;
width: 50%;
/* height: 100px; */
background-color: black;
}
.son-img{
width: 25%;
background-color: rgba(217, 74, 74, 0.576);
}
.son-p1{
width: 25%;
background-color: cadetblue;
}
.son-p2{
width: 25%;
background-color: rgb(18, 223, 230);
}
.son-p3{
width: 25%;
background-color: cadetblue;
}
float就图一乐,还是flexyyds
Q2:怎么调节图片透明度?
A2:
opacity: 0.8;
/* 0[全透明]--1【完全不透明,默认】 */
美中不足
因为文字和图片在同一个层级(即它们的父元素没有设置背景)。当你调节图片的透明度时,文字会受到影响,因为它们都是在同一个上下文中绘制的。
improvement
- 使用绝对定位:将文字放在图片上方,确保它们在不同的层级。
牺牲图片里有文字效果 - 使用背景图:将图片设置为元素的背景,而不是作为 标签,这样你可以独立控制透明度
图片有盒子大小要求
.container {
background-image: url('image.jpg');
background-size: cover;
opacity: 0.5; /* 背景透明 */
color: black; /* 文字不透明 */
}
- 使用伪元素:使用 ::before 或 ::after 伪元素为容器添加背景图片。
然并卵,没人鸟我,先搁置
Q3:怎么使得图片和文字一行对齐?
A3:使用vertical-align: baseline;
我觉得我可以搞一个登陆页面了好好好,开做!
[今天晚了,先去构思,明天再实现哈哈哈]