《jQuery与JavaScript入门经典》——2.3 调试CSS

简介: 如果JavaScript或jQuery脚本修改了DOM元素的CSS布局,查看Web浏览器中的代码不会有任何帮助,而需要查看浏览器应用于元素的CSS。为此,需要结合使用CSS检查器以及HTML检查器中的布局检查器和样式检查器。

本节书摘来自异步社区《jQuery与JavaScript入门经典》一书中的第2章,第2.3节,作者:【美】Brad Dayley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.3 调试CSS

要调试动态网页,还需知道如何调试CSS问题,因为要实现网页的动态性,很多时候都需使用JavaScript修改CSS布局。

如果JavaScript或jQuery脚本修改了DOM元素的CSS布局,查看Web浏览器中的代码不会有任何帮助,而需要查看浏览器应用于元素的CSS。为此,需要结合使用CSS检查器以及HTML检查器中的布局检查器和样式检查器。

2.3.1 使用CSS检查器
CSS检查器让您能够访问网页加载的所有CSS脚本,如图2.13所示。CSS检查器顶部有两个下拉列表,左边的下拉列表让您能够在下面两个选项之间切换。

  • CSS源代码编辑:显示随网页加载的原始CSS。
  • CSS实时编辑:显示当前应用于HTML元素的CSS。

screenshot

右边的下拉列表包含所有这样的文件,即已加载的包含CSS的文件。这让您能够选择要查看和编辑哪个CSS文档。

在CSS检查器中,还可以编辑CSS,如图2.13所示。请注意其中的禁用图标,单击这个图标将禁用相应的CSS属性,而这个图标也将从红色变成灰色。您还可以直接编辑CSS属性的值,如图2.13所示。

2.3.2 使用样式检查器
除编辑CSS文件外,还可查看和编辑特定元素的CSS属性,为此需要切换到HTML检查器。图2.14显示了HTML检查器中的“样式”选项卡。在样式检查器中,可查看和修改特定元素的属性值。

screenshot

图 2.14 还演示了样式检查器的一些重要功能。注意到在菜单中选择了:hover,这将显示将鼠标指向选定元素时,将应用于该元素的CSS样式。另外,注意到选择器span:hover覆盖了选择器span的background-color设置。样式窗口显示了完整的CSS层次结构,让您能够知道属性值来自哪个CSS选择器以及哪些值被覆盖。

2.3.3 使用布局检查器
调试CSS时,另一个功能极其强大的工具是HTML检查器中的布局检查器。布局检查器提供了易于使用的可视化界面,让您能够查看选定HTML元素的CSS布局,如图2.15所示。

在布局检查器中,您可以使用、查看和修改下述方面。

  • 外边距:外边距是布局检查器中最外面的矩形,每边都显示了外边距值。在布局检查器中,您可双击这些值来直接修改CSS属性。
  • 边框:边框是下一个矩形,它也有4个值,您可修改这些值来调整选定HTML元素的CSS边框属性。
  • 内边距:内边距是下一个矩形,它也有4个值,您可修改这些值来调整选定HTML元素的CSS内边距属性。
  • 内容:内容是布局检查器中最内面的矩形,它有两个值(长度和宽度),您可修改这些值来调整选定HTML元素的CSS属性length和width。
  • 标尺:标尺显示在网页中,让您能够查看元素的尺寸。
  • 辅助线:当您在布局检查器中选择外边距、边框、内边距或内容矩形时,网页中将出现辅助线。辅助线分水平和垂直两种,指出了选定CSS属性边缘的位置,在您需要在布局中对齐元素时很有用。

screenshot

编辑CSS布局

为帮助您理解如何使用Firebug调试和编辑CSS布局,来看程序清单2.3所示的代码。这些代码使用选项卡式方框显示信息。CSS属性存在一些问题,导致网页不能正确地显示,如图2.16所示。

注意到这些选项卡垂直地堆叠,且选项卡之间有空隙。

程序清单2.3 一个非常简单的HTML文档,其中存在一些HTML语法错误,如图2.16所示

screenshot
screenshot

screenshot

请按如下步骤修复CSS布局。

  1. 在项目的文件夹hour02中,新建文件hour0203.html,再其中输入程序清单2.3所示的代码,再保存文档。
  2. 启动Firefox并单击Firebug图标以启用Firebug。
  3. 在Firefox中输入如下URL。

screenshot

  1. 单击Firebug中的标签HTML,再依次展开元素< html>、< body>、< div id="container">、和< div id="tabs">,如图2.17所示。
  2. 选择元素< div id="container">并展开它。
  3. 选择子元素< div id="tabs">。
  4. 单击Layout(布局)标签,并将鼠标指向外边距矩形。查看用于包含标签的元素的外边距辅助线,它几乎与一个标签等宽,因此无法让全部三个标签并排显示。

screenshot

  1. 为修复这个问题,单击标签Style(样式),并将属性width改为300px,如图2.18所示。注意到三个标签并排显示了,但间距依然太大。

注意:也可以在布局检查器中直接修改外边距、边框、高度、宽度和内边距值。

screenshot

  1. 右击网页中的Name标签,并从弹出菜单中选择“使用Firebug查看元素”,将在HTML检查器中自动选择这个元素。
  2. 单击标签“布局”(Layout),并将鼠标指向外边距矩形,如图2.19所示。注意到< span>元素的外边距为5像素,这就是标签没有紧靠在一起的原因所在。

screenshot

  1. 切换到“样式”选项卡,并禁用< span>元素的margin属性,如图2.20所示。现在,标签紧靠在一起,并紧靠着信息框。
    screenshot
相关文章
|
2月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
23天前
|
前端开发 JavaScript
如何在 JavaScript 中访问和修改 CSS 变量?
【10月更文挑战第28天】通过以上方法,可以在JavaScript中灵活地访问和修改CSS变量,从而实现根据用户交互、页面状态等动态地改变页面样式,为网页添加更多的交互性和动态效果。在实际应用中,可以根据具体的需求和场景选择合适的方法来操作CSS变量。
|
23天前
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
|
14天前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
Next.js和Nuxt.js在优化CSS和JavaScript加载方面提供了多种策略和工具。Next.js通过代码拆分、图片优化和特定的CSS/JavaScript优化措施提升性能;Nuxt.js则通过代码分割、懒加载、预渲染静态页面、Webpack配置和服务端缓存来实现优化。两者均能有效提高应用性能。
|
14天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
61 1
|
19天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
33 3
|
23天前
|
前端开发 JavaScript UED
如何使用 JavaScript 动态修改 CSS 变量的值?
【10月更文挑战第28天】使用JavaScript动态修改CSS变量的值可以为页面带来更丰富的交互效果和动态样式变化,根据不同的应用场景和需求,可以选择合适的方法来实现CSS变量的动态修改,从而提高页面的灵活性和用户体验。
|
29天前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
85 6
|
2月前
|
JavaScript 前端开发 开发者
jQuery:JavaScript库的瑰宝
jQuery:JavaScript库的瑰宝
43 3
|
2月前
|
JavaScript 前端开发 API
深入了解jQuery:快速、高效的JavaScript库
【10月更文挑战第11天深入了解jQuery:快速、高效的JavaScript库
16 0