批改状态:合格
老师批语:table布局不存在兼容性的
通过设置 margin 来实现列间距,目前有两种方法: 1.通过百分比设置 2.通过(百分比 - em )来实现(推荐使用)
设置百分比

代码部分
<style>body {background-color: #f1f1f1;/* 把盒子设置为IE盒子 */box-sizing: border-box;}.container {background-color: rgb(46, 101, 250);border-radius: 0.5em;text-align: center;color: #fff;}/* 将main转换为块元素 */.main {display: block;width: 70%;}.main ,.right {border: 1px solid #333;border-radius: 0.5em;background: #fff;float: left;/* 将main和right转换为IE盒子 */box-sizing: border-box;}/* 把右边的块元素撑开 */.right {padding: 1.5em;}/* 第一种设置列间距的方法 *//* 1. 用相对单位百分比来设置 */.right {width: 29%;margin-left: 1%;}</style>
将右列(right)的宽度设置为 29%,然后设置左侧外边距为 1%,即 margin-left: 1%
虽然通过设置百分比,得到了我们想要的效果。但是,在改变视窗大小后,块元素之间的间距大小也会随之改变,在一些特定场景下,我们是不希望出现这种情况的。所以,这种实现方法并不推荐。
设置(百分比 - em)

代码部分
<style>body {background-color: #f1f1f1;/* 把盒子设置为IE盒子 */box-sizing: border-box;}.container {background-color: rgb(46, 101, 250);border-radius: 0.5em;text-align: center;color: #fff;}/* 将main转换为块元素 */.main {display: block;width: 70%;}.main ,.right{border: 1px solid #333;border-radius: 0.5em;background: #fff;float: left;/* 将main和right转换为IE盒子 */box-sizing: border-box;}/* 把右边的块元素撑开 */.right {padding: 1.5em;}/* 第二种设置列间距的方法 *//* 2. 用相对单位百分比和em组合来设置注意计算格式之间有空格,否则计算无效*/.right {width: calc(30% - 1em);margin-left: 1em;}</style>
设置右边的块元素,左侧外边距为 1em,因为(right)的宽度包含了这个外边距,所以应当减去,运用函数计算。表达式为:calc(百分比 - em),即:calc(30% - 1em)
注意表达式里的空格,必须隔开,否则会导致运算无效。【切记!!!切记!!!切记!!!】通过设置后发现,运用这种方法,无论怎么调整视窗的大小,这个列间距都是相对一致的,并不会随视窗改变而改变。所以,我们推荐使用这种方法来实现列间距的设置。
思考:???
我们在前面学习了使用百分比来实现列间距的设置,虽然能实现左右两边块元素的间距,但是,一旦两个块元素里所包含的元素数量不等时,是无法实现块元素等高的。也不能通过写死数据,来设置高度。还有什么办法呢?
办法肯定是有的,我们知道表格的属性中,具有同行列高相等的特性,单元格内不管包含的元素有多少,这行表格两边元素的列高始终一致。为了验证想法,通过下面的代码案例,来实践一下。
代码部分:
<style>body {background-color: #eee;color: #000;}.top > h2 {background-color: #fff;}.conter {display: table;width: 100%;border-spacing: 0.5em 0;text-align: center;}.main,.sider {display: table-cell;background-color: #fff;color: #000;border-radius: 0.5em;}.right-box {margin: 0;padding: 0;}.container {margin-left: -0.5em;margin-right: -0.5em;}</style>

使用表格来实现列的等高并不会真正使用表格,(在HTML里没有用到表格元素), 而只是是把CSS属性设置为表格元素的属性来显示。这个方法可能是一个比较简单的解决方案。不过,因为是用到了”表格”。所有需要特别小心浏览器兼容性问题。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号