赞
踩
JavaScript 中 可以通过 DOM ( 文档对象模型 ) 操作 来 修改网页的 内容 , 结构 , 样式 , 属性 ;
在 【Web APIs】JavaScript 操作元素 ① ( 修改元素内容 | innerText 属性修改元素文本内容 | innerHTML 属性修改元素 HTML 内容 ) 博客中介绍了 使用
修改 DOM 元素标签内容的 ;
在 【Web APIs】JavaScript 操作元素 ② ( 修改元素属性 | 直接访问属性 | 使用setAttribute、getAttribute 和 removeAttribute访问属性 ) 博客介绍 通过 DOM 操作 修改元素属性 ;
在 【Web APIs】JavaScript 操作元素 ③ ( 修改表单元素属性 | 表单常用属性 | 表单常用属性修改示例 ) 博客介绍 通过 DOM 操作 修改表单元素属性 ;
在 【Web APIs】JavaScript 操作元素 ④ ( 修改元素属性示例 | 密码表单标签结构 | 密码输入框样式设置 | 右侧图标按钮设置 | JavaScript 修改元素属性示例 ) 博客中 , 开发了一个 密码输入框案例 , 点击右侧按钮可 显示 / 隐藏 密码文本内容 , 实际上就是 切换 input 表单的类型 type 在 text / password 之间进行类型切换 ;
在 【Web APIs】JavaScript 操作元素 ⑤ ( 修改元素样式属性 | 行内样式操作 - element.style | 类名样式操作 | 类列表样式操作 ) 博客中 分析了 操作 元素样式属性的 三种方式 : 行内样式操作 , 类名样式操作 , 类列表样式操作 ;
在页面中 , 设置一个对话框 , 点击对话框左侧 x 按钮 , 关闭对话框 ;
关闭对话框 的 效果 , 可以使用 display 属性实现 ;
display:block
属性 ;display:none
属性 ;标签元素 的 display 属性 可用于定义一个元素如何在页面上显示 , 该属性 控制了元素的盒模型特性 , 如 : 尺寸、布局方式和如何处理与其他元素的关系 ;
display 属性的不同值可以影响页面的 布局 和 元素的可见性 ;
display 属性值 设置参考 :
block : 将元素 设置 为 块级元素 ;
<div>
、<p>
、<h1>
;inline : 将元素 设置 为 行内元素 ;
<span>
、<a>
、<strong>
;inline-block : 将元素设置为 行内块元素 ;
none : 隐藏元素 , 元素不会显示在页面上 , 且不占据任何空间 ;
flex : 设置元素 为 弹性容器 , 子元素 按指定的方式排列和对齐 ;
grid : 设置元素 为 网格容器 , 子元素 按照网格系统排列 , 适用于创建复杂的二维布局 ;
list-item : 设置元素 为 列表项 , 通常用于 <li>
元素 , 该类型元素前面添加一个项目符号或数字 ;
table : 设置元素 为 表格 , 类似于 HTML 的 <table>
标签元素 , 该设置影响元素的布局方式 , 元素显示为表格格式 ;
代码的标签结构为 :
<div class="box">
<div class="inner_box">盒子模型元素</div>
<i class="close-btn">×</i>
</div>
外部的 div 标签 box 元素 设置为 100 x 100 像素 , 其样式如下 , 注意 要设置 相对布局 , 因为其子元素要使用绝对布局 ;
.box {
/* 相对布局 子元素 绝对布局 子绝父相 */
position: relative;
width: 100px;
height: 100px;
border: 1px solid #ccc;
margin: 100px auto;
font-size: 12px;
text-align: center;
color: #f40;
background-color: aqua;
/* display: block; 显示元素*/
/* display: none; 隐藏元素*/
}
内部的 div 标签元素 只是 用于显示一行字 , 没有其它作用 , 设置 50 x 50 像素 居中显示文本即可 ;
.box .inner_box {
width: 50px;
height: 50px;
margin: 10px auto;
}
关闭按钮 , 需要考虑 将 按钮 设置到 父容器 之外 , 这里使用绝对布局 ;
.close-btn { /* 绝对布局 父元素 相对布局 子绝父相 */ position: absolute; /* 外部的 box 有 1 像素边框 按钮也有 1 像素边框 为了使按钮与盒子对齐 */ top: -1px; /* 将按钮放在 盒子的 左侧 多出的 2 像素是边框 */ left: -22px; /* 设置 左侧 关闭按钮宽高 */ width: 20px; height: 20px; border: 1px solid #ccc; line-height: 20px; /* 设置字体 */ font-family: Arial, Helvetica, sans-serif; /* 设置鼠标移动上之后变成小手 */ cursor: pointer; }
HTML 的 一个布局 可以看做一个 矩形的 盒子模型 , 该 盒子模型 是一个用于 容纳 标签元素 的容器 ; 盒子模型 组成 : 由内到外顺序如下 :
<div class="box">
标签设置了 1 像素的 边框 ,
<i class="close-btn">×</i>
标签 也设置了 1 像素的 边框 ,
设置 按钮时 , 左侧和 顶部 的 样式 , 绝对布局 距离顶部 设置 -1 像素 , 距离左侧 -22 像素 , 正好可以将 按钮 与 外部盒子模型 进行对齐操作 ;
/* 外部的 box 有 1 像素边框 按钮也有 1 像素边框 为了使按钮与盒子对齐 */
top: -1px;
/* 将按钮放在 盒子的 左侧 多出的 2 像素是边框 */
left: -22px;
如果 想要 将子元素 设置到 父容器 之外 ,
父容器 使用 相对布局 , 子元素 使用 绝对布局 , 设置 上下左右 绝对布局值的时候 , 使用 负值即可超出边界 ;
代码示例 :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Inline Style Operation Example</title> <style> .box { /* 相对布局 子元素 绝对布局 子绝父相 */ position: relative; width: 100px; height: 100px; border: 1px solid #ccc; margin: 100px auto; font-size: 12px; text-align: center; color: #f40; background-color: aqua; /* display: block; 显示元素*/ /* display: none; 隐藏元素*/ } .box .inner_box { width: 50px; height: 50px; margin: 10px auto; } .close-btn { /* 绝对布局 父元素 相对布局 子绝父相 */ position: absolute; /* 外部的 box 有 1 像素边框 按钮也有 1 像素边框 为了使按钮与盒子对齐 */ top: -1px; /* 将按钮放在 盒子的 左侧 多出的 2 像素是边框 */ left: -22px; /* 设置 左侧 关闭按钮宽高 */ width: 20px; height: 20px; border: 1px solid #ccc; line-height: 20px; /* 设置字体 */ font-family: Arial, Helvetica, sans-serif; /* 设置鼠标移动上之后变成小手 */ cursor: pointer; } </style> </head> <body> <div class="box"> <div class="inner_box">盒子模型元素</div> <i class="close-btn">×</i> </div> <script> // 1. 获取元素 var btn = document.querySelector('.close-btn'); var box = document.querySelector('.box'); // 2.注册事件 程序处理 btn.onclick = function() { box.style.display = 'none'; } </script> </body> </html>
执行效果 :
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。