第一个子元素的margin-top和最后一个子元素的margin-bottom越界问题

本文介绍了当CSS中父元素不设边框时,子元素的Margin-top或Margin-bottom可能会出现越界的情况,并提供了四种解决方案:添加边框、内边距、隐藏溢出或使用伪元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一个子元素的margin-top和最后一个子元素的margin-bottom越界问题

当父元素没有边框border时,子元素加margin-top(这里以第一个子元素的 margin-top为例),会出现 margin-top加在父元素上的bug。

解决方法有四种:1.给父元素加border。

                      2.给父元素加padding。

                      3.给父元素加overflow:hidden。

                      4.(推荐使用) 给父元素加前置内容生成。

 

css 四种方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#parent{
         width : 300px ;
         height : 200px ;
         background-color :yellow;
         /*①给父元素加border*/
         /*border:1px solid black;*/
 
                /*②给父元素加padding*/
        /* padding-top:10px;*/
 
        /*③给父元素加overflow:hidden*/
        /*overflow:hidden;*/
 
       /*④ 给父元素加前置内容生成*/
       }
       #parent:before{
         content : " " ;
         display :table;
       }
       #child{
         width : 100px ;
         height : 50px ;
         background-color : red ;
         margin-top : 50px ;
       }

这是html页面:

1
2
3
< div  id="parent">
     < div  id="child"></ div >
  </ div >
<style scoped> /* 基础响应式 */ .filter-container { padding: 10px; } /* 移动端表单项优化 */ @media (max-width: 768px) { .el-form-item { margin-bottom: 15px; } .el-form-item__label { float: none; display: block; text-align: left; padding: 0 0 8px 0; } .el-form-item__content { margin-left: 0 !important; } .mobile-full-width { width: 100%; } /* 解决iOS Safari渲染问题 */ :deep(.el-select) { width: 100%; } } /* 对话框移动端适配 */ :deep(.el-dialog) { @media (max-width: 768px) { width: 90% !important; margin-top: 5vh !important; } } </style> <template> <div class="filter-container"> <el-form :model="searchForm"> <el-row :gutter="15"> <!-- 问卷标题搜索 --> <el-col :xs="24" :sm="12" :md="6"> <el-form-item label="问卷标题"> <el-input v-model="searchForm.dcWjTitle" placeholder="输入问卷标题" clearable /> </el-form-item> </el-col> <!-- 被测评人ID搜索 --> <el-col :xs="24" :sm="12" :md="6"> <el-form-item label="被测评人ID"> <el-input v-model="searchForm.dcid" placeholder="输入被测评人ID" clearable /> </el-form-item> </el-col> <!-- 部门选择 --> <el-col :xs="24" :sm="12" :md="6"> <el-form-item label="人员部门"> <el-select v-model="searchForm.dcDept" placeholder="选择部门" clearable > ... </el-select> </el-form-item> </el-col> <!-- 状态选择 --> <el-col :xs="24" :sm="12" :md="6"> <el-form-item label="提交状态"> <el-select v-model="searchForm.state" placeholder="选择状态" clearable > ... </el-select> </el-form-item> </el-col> <!-- 搜索按钮 --> <el-col :xs="24" :sm="24" :md="6"> <el-form-item> <el-button type="primary" @click="handleSearch" icon="el-icon-search" class="mobile-full-width" >搜索</el-button> </el-form-item> </el-col> </el-row> </el-form> </div> </template> <script> export default { data() { return { searchForm: { dcWjTitle: '', dcid: '', dcDept: '', state: '' }, rawData: [], // 原始数据 departments: [ // 部门选项 { label: '技术部', value: 'tech' }, { label: '市场部', value: 'market' } ] } }, computed: { // 过滤后的数据 filteredData() { return this.rawData.filter(item => (!this.searchForm.dcWjTitle || item.title.includes(this.searchForm.dcWjTitle)) && (!this.searchForm.dcid || item.dcid === this.searchForm.dcid) && (!this.searchForm.dcDept || item.dept === this.searchForm.dcDept) && (!this.searchForm.state || item.state === this.searchForm.state) ) } }, methods: { // 触发搜索 handleSearch() { this.fetchFilteredData() }, // 从后端获取数据 async fetchFilteredData() { try { const params = { title: this.searchForm.dcWjTitle, dcid: this.searchForm.dcid, dept: this.searchForm.dcDept, state: this.searchForm.state } // 调用后端API(示例) const { data } = await axios.get('http://172.26.26.43/dev-api/wjdc/wj/listTx?', { params }) this.rawData = data } catch (error) { console.error('获取数据失败', error) } } } } </script> 为什么这个布局我再电脑网页上打开显示不全
最新发布
07-15
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值