同名b/dy有对应的视频
一个萌新问题,大致意思是期望在一个form表单中,label的宽度可以保持一致
解决1
<!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>
.container {
width: 100%;
display: flex;
justify-content: flex-start;
align-items: center;
}
.item {
width: 400px;
height: 100px;
border: 1px solid red;
margin-right: 10px;
display: flex;
justify-content: flex-start;
align-items: stretch;
.labels {
height: 100%;
width: auto;
display: flex;
flex-direction: column;
justify-content: flex-start;
border: 1px solid green;
margin-right: 5px;
}
.values {
height: 100%;
flex: 1;
display: flex;
flex-direction: column;
justify-content: flex-start;
border: 1px solid blue;
}
}
</style>
</head>
<body>
<div class="container">
<div class="item">
<div class="labels">
<div class="label">label</div>
<div class="label">labellabel</div>
<div class="label">labellabellabellabel</div>
</div>
<div class="values">
<div class="value">value</div>
<div class="value">valuevalue</div>
<div class="value">valuevaluevaluevalue</div>
</div>
</div>
</div>
</body>
</html>
这是盘绿大佬给的解决方案,根正苗红,但萌新希望label和value的内容在一行当中,格式大概如下
解决2
<!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>
.item {
width: 400px;
height: 100px;
margin-right: 10px;
.row {
height: 20px;
width: 100%;
display: table-row;
}
.label {
display: table-cell;
}
.value {
display: table-cell;
}
}
</style>
</head>
<body>
<div class="item">
<div class="row">
<div class="label">label:</div>
<div class="value">value</div>
</div>
<div class="row">
<div class="label">labellabel:</div>
<div class="value">valuevalue</div>
</div>
<div class="row">
<div class="label">labellabellabel:</div>
<div class="value">valuevaluevalue</div>
</div>
</div>
</body>
</html>
直接table布局,解决类似烦恼
萌新的纠结
一开始就想用table,但又觉得table不规范,知道第一种方案但又觉得嵌套很多div不够优雅,觉得不写在一起,不好维护 这种心理很正常官方都有类似的想法,即如何真的让html代表内容,完全不涉及结构/布局的那种【按照这种想法,很自然的写出了第二种html】,如果一定想这样,多看例子就行
比如这里的方案,在css揭秘中就可以找到对应的例子,他虽然提的是table-layout,但讲的就是dispaly:table
的布局使用技巧
当然,这类技巧长长见识就行,不一定用的上,现在用框架,一定会涉及到js相关的操作,这种情况下css技巧已经不重要了,我们可以使用js给他捏成自己喜欢的结构
反正能靠js改,用什么结构不需要太纠结
<card>
<cardItem>
<label>label:</label><info>value</info>
<label>label222:</label><info>value</info>
</cardItem>
</card>