批改状态:合格
老师批语:有时,添加多余元素是有溢的
:root{/* 声明这是一个CSS变量:用“--”来声明 */--background-color:red}.header{/* 引用变量: 属性:var(变量名) */background-color:var(--background-color)}
注意两点:1.使用
--来声明变量,2.使用var来引用变量。
/* 设置一个页面宽度为70% */.box{width:70%}/* 另外一个设置为30%,同时左侧设置一个1em的列间隙 */.box2{width:calc(30% - 1em)}
注意:calc 中适用
+-*/等基本运算,但是运算符前后要使用空格来隔开,如calc(值 '空格' '运算符' '空格' '另外一个值')
@media 查询| 值 | 描述 |
|---|---|
all |
用于所有设备 |
print |
用于打印或打印预览 |
screen |
用于电脑屏幕、平板电脑、智能手机等 |
speech |
应用于屏幕阅读器等发声设置 |
/* 通过媒体查询当前页面最小宽度等于800px时改变:root字号 */@media screen and (min-width:800px){:root{font-size:0.8em;}}通过媒体查询当前页面最小宽度等于1000px时改变:root字号@media screen and (min-width:1000px){:root{font-size:1.5em;}}
通过设置 margin 来实现列间距,目前有两种方法:
<style>body {background-color: antiquewhite;color: blueviolet;}.main,.aside {/* 转为IE盒子 */box-sizing: border-box;/* 使用浮动来实现页面布局 */float: left;/* 盒子颜色aqua */background-color: aqua;}/* 设置左侧main的宽度 */.main {width: 70%;}/* 设置右侧.aside的宽度 */.aside {width: 30%;}/* 通过margin在盒子aside左侧来设置间隙 */.aside {/* 设置列间隙为1% */margin-left: 1%;}</style></head><body><header class="header"><h1>列间距的设置方案</h1><main class="main"><p>这是第一个盒子</p></main><aside class="aside"><div class="div">这是第二个盒子</div></aside></header></body>
body {background-color: antiquewhite;color: blueviolet;}.main,.aside {/* 转为IE盒子 */box-sizing: border-box;/* 使用浮动来实现页面布局 */float: left;/* 盒子颜色aqua */background-color: aqua;}/* 设置左侧main的宽度 */.main {width: 70%;}/* 设置右侧.aside的宽度 */.aside {width: 30%;}/* 通过margin在盒子aside左侧来设置间隙 */.aside {/* 通过CSS计算盒子aside最终宽度,避免宽度超过100%溢出 */width: calc(30% - 1em);/* 设置列间隙为1em */margin-left: 1em;}
无间隙效果:
有间隙效果:
这里涉及到一个属性
float浮动:CSS 的 Float(浮动),会使元素向左或向右移动,其周围的元素也会重新排列。Float(浮动),往往是用于图像,但它在布局时一样非常有用。
/* 元素向左浮动排列 */float:left;/* 清除浮动: */clear:both;/* 或 */folat:none;
通过表格来将容器转换为 table 属性,table 不支持 margin 属性的设置;
display介绍:display 属性规定元素应该生成的框的类型| 值 | 作用 |
|---|---|
inline |
默认。此元素会被显示为内联元素,元素前后没有换行符。 |
block |
此元素将显示为块级元素,此元素前后会带有换行符。 |
list-item |
此元素会作为列表显示。 |
run-in |
此元素会根据上下文作为块级元素或内联元素显示。 |
table |
此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。 |
inline-table |
此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。 |
table-row-group |
此元素会作为一个或多个行的分组来显示(类似 <tbody>)。 |
table-header-group |
此元素会作为一个或多个行的分组来显示(类似 <thead>)。 |
table-footer-group |
此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。 |
table-row |
此元素会作为一个表格行显示(类似 <tr>)。 |
table-column-group |
此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。 |
table-column |
此元素会作为一个单元格列显示(类似 <col>) |
table-cell |
此元素会作为一个表格单元格显示(类似 <td> 和 <th>) |
table-caption |
此元素会作为一个表格标题显示(类似 <caption>) |
inherit |
规定应该从父元素继承 display 属性的值。 |
border-spacing:表格列间距。列与列之间的距离或间隙。
/* border-spacing:第一个值代表水平上(左右)的距离,第二个值代表垂直上(上下)的距离。 */border-spacing:1.5em 0;
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>等高列实现</title><style>body {background-color: aliceblue;color: blueviolet;}.header {background-color: aquamarine;border-radius: 0.5em;}.container {/* 先将容器container转换为表格 */display: table;/* 设置宽度为100%,占满整个父级容器 */width: 100%;/* 表格中的列间隔 */border-spacing: 1.5em 0;}.main,.aside {/* 将这两项转为单元格 */display: table-cell;background-color: aquamarine;}.wrapper {/* 这里两侧多出来的margin是表格的列间距 */margin-left: -1.5em;margin-right: -1.5em;}</style></head><body><header class="header"><h1>表格等高实现:</h1></header><!-- 给容器container设置一个外套,方便去掉两侧的margin,使页面更美观 --><div class="wrapper"><div class="container"><main class="main"><span>使用表格实现等高:<br />表格不支持margin的设置,也不支持浮动</span></main><aside class="aside"><div class="box">和左侧等高</div></aside></div></div></body></html>
效果展示:
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号