一、内外边距学习:
(1)简单理解:
padding为内边距。padding不会影响元素的位置,只会调整元素的内容(文字)与边框之间的间距。
margin为外边距。margin会影响元素在流式布局中的位置,改变元素与相邻元素之间的间距
(2)具体理解:
margin:
- margin可以为正值、负值或百分比。正值表示元素与相邻元素之间的间距,负值表示元素会覆盖相邻元素的部分,百分比则表示相对于父元素的宽度。
- margin的值可以分别指定上、右、下、左四个方向的距离:
margin:10px 60px 50px 20px; /* 上右下左 */ margin: 10px 20px; /* 上下 左右 */
- margin的值不会对元素自身大小产生影响,只会影响元素与相邻元素之间的距离。
padding:
- padding可以为正值、负值或百分比。正值表示元素内容与边框之间的间距,负值则表示元素的内容会超出边框,百分比则表示相对于元素的宽度。
- padding的值可以分别指定上、右、下、左四个方向的距离,也可以使用简写方式指定一到四个方向的距离。
- padding的值会影响元素的尺寸,增加padding会增加元素的大小。
二、行内元素 vs 块级元素学习:
一、基础概念
1. 块级元素 :
特点:
- 独占一行,前后会自动换行
- 可以设置宽度(width)、高度(height)、内外边距(margin/padding)
- 默认宽度是父元素的100%
常见块级元素标签:
<div>
- 通用容器<p>
- 段落<h1>-<h6>
- 标题<ul>
,<ol>
,<li>
- 列表<section>
,<article>
,<header>
,<footer>
- HTML5语义标签
2. 行内元素 :
特点:
- 不会独占一行,与其他行内元素排在同一行
- 设置宽度(width)、高度(height)无效
- 只能设置左右边距(margin-left/right),上下边距无效
- 默认宽度由内容决定
常见行内元素标签:
<span>
- 通用行内容器<a>
- 链接<strong>
,<em>
- 强调文本<img>
- 图片(特殊,可以设置宽高)<input>
,<button>
- 表单元素
3. 常见:div和span的区别
<div>
是块级元素,用于布局和分组大块内容<span>
是行内元素,用于对文本的一部分进行样式设置或操作
二、代码示例
<!DOCTYPE html>
<html>
<head><style>.block {background-color: lightblue;padding: 10px; /* 内边距*/margin: 10px; /* 外边距*/}.inline {background-color: lightcoral;padding: 10px;margin: 10px;}</style>
</head>
<body><div class="block">我是div块级元素1号</div><div class="block">我是div块级元素2号</div><span class="inline">我是span行内元素1号</span><span class="inline">我是span行内元素2号</span>
</body>
</html>
三、运行结果图:
这里可以看出前面提到的行内元素的特点:margin只能设置左右边距(margin-left/right),上下边距无效:
三、实战案例:
<!DOCTYPE html>
<html><head><style>.card {width: 300px;border: 1px solid #ccc;border-radius: 8px;padding: 15px;margin: 20px;box-shadow: 0 2px 4px rgba(0,0,0,0.1);}.title {font-size: 20px;margin-bottom: 10px;color: #333;}.content {color: #666;line-height: 1.5;}.tags {margin-top: 15px;}.tag {display: inline-block;background-color: #f0f0f0;padding: 3px 8px;border-radius: 4px;margin-right: 5px;font-size: 12px;}.author {font-style: italic; /* 斜体 */color: #888;}</style></head><body><div class="card"><h2 class="title">前端学习指南</h2><p class="content">学习前端开发需要掌握HTML、CSS和JavaScript等基础知识。HTML用于构建网页的结构,CSS用于样式设计,而JavaScript则用于实现交互功能。通过不断实践和学习,可以逐步提高前端开发技能。<span class="author">---island</span></p><div class="tags"><span class="tag">HTML</span><span class="tag">CSS</span><span class="tag">JavaScript</span></div></div></body>
</html>
这里可以看到.tag这里有一个新的display,来学习一下:
1. display属性基础
display属性:可以通过CSS的
display
属性改变元素的显示方式display: block
- 转为块级元素display: inline
- 转为行内元素display: inline-block
- 行内块元素(可设置宽高但不换行
2.对比下三种方式:
3.三种显示方式对比表
特性 | inline | block | inline-block |
---|---|---|---|
是否换行 | 不换行 | 换行 | 不换行 |
可设置宽高 | 不可以 | 可以 | 可以 |
内外边距 | 只有左右有效 | 全部有效 | 全部有效 |
默认宽度 | 内容决定 | 父元素100% | 内容决定(可设宽高) |
典型HTML元素 | span, a | div, p | img, button |