获取内联和链接中的样式(js代码)

yizhihongxing

获取内联和链接中的样式可以通过DOM来完成。通常情况下,内联Style和link样式表都可以被获取。

获取内联样式可以使用element.style属性,该属性可以返回包含所有内联样式属性的对象。对象的各个属性可以使用点表示法访问,其值是CSS属性的字符串表示形式。例如:

<div id="myDiv" style="background-color: red; width: 300px; height: 200px;"></div>
const myDiv = document.getElementById("myDiv");
const backgroundColor = myDiv.style.backgroundColor; // "red"
const width = myDiv.style.width; // "300px"
const height = myDiv.style.height; // "200px"

如果想获取CSS样式表中的样式,可以使用getComputedStyle方法。该方法接受要获取样式的元素作为参数,返回一个包含所有计算后样式属性的对象。各个属性仍然可以使用点表示法访问,其值同样是CSS属性的字符串表示形式。例如:

<link rel="stylesheet" href="mystyle.css">
<div id="myDiv"></div>
const myDiv = document.getElementById("myDiv");
const computedStyle = getComputedStyle(myDiv);
const backgroundColor = computedStyle.backgroundColor; // "rgb(255, 0, 0)"
const width = computedStyle.width; // "auto"
const height = computedStyle.height; // "auto"

在上面的示例中,mystyle.css文件中可以定义#myDiv元素的样式,例如:

#myDiv {
    background-color: blue;
    width: 400px;
    height: 300px;
}

虽然内联样式和链接样式表都可以通过DOM获取,但是有一些细微的差别。

对于内联样式,element.style 只能获取到写在 HTML 结构中的内联样式,并不能获取到通过 JavaScript 动态添加的内联样式。而在 Firefox 浏览器中,computedStyle对象可以获取到通过 JavaScript 动态添加的内联样式。因此,为了能够更加准确地获取内联样式,通常我们会把样式放到 class 中,然后使用 getComputedStyle 方法获取计算后的样式。

另外,对于 link 标签里连接的样式表(如上例中的 mystyle.css),computedStyle方法也可以获取到。但是如果样式表没有加载完毕,计算出来的样式可能是不准确的。如果想要确保样式已经加载完毕才获取样式,可以监听 load 事件。例如,如果想在加载完毕后获取 #myDiv 的 width 属性,可以这样做:

<link rel="stylesheet" href="mystyle.css">
<div id="myDiv"></div>
<script>
    window.addEventListener('load', function() {
        const myDiv = document.getElementById("myDiv");
        const computedStyle = getComputedStyle(myDiv);
        const width = computedStyle.width; // "400px"
    });
</script>

在上面的示例中,等到样式表加载完毕后,才获取 #myDiv 的 width 属性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:获取内联和链接中的样式(js代码) - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS让高度不确定图片垂直居中的几种技巧

    下面是关于CSS让高度不确定的图片垂直居中的几种技巧的完整攻略。 1. 使用Flexbox布局 Flexbox布局是一种非常方便实用的CSS布局方式,可以轻松地实现垂直居中效果。首先,设置容器的display属性为flex,并将justify-content和align-items属性都设置为center,代码如下: .container { display…

    css 2023年6月10日
    00
  • 原生JavaScript实现进度条

    下面是“原生JavaScript实现进度条”的完整攻略,包括实现过程、代码示例和具体讲解。 1. 实现过程 1.1 顶部进度条 实现顶部进度条的关键是获取当前页面的加载进度,并将其转化为进度条的宽度并实时更新,下面是代码示例: <!DOCTYPE html> <html> <head> <meta charset=&…

    css 2023年6月10日
    00
  • IE7 float:left左浮动失效的解决方法

    下面是解决IE7 float:left左浮动失效的完整攻略。 问题描述 在IE7浏览器下,可能会出现float:left左浮动无法生效的问题,导致页面样式错乱。这是由于IE7存在兼容性问题所致。 解决方法 方法一:添加“display:inline” 在浮动元素的样式中,添加“display:inline”属性,可以修复IE7下浮动失效的问题。 示例代码: …

    css 2023年6月10日
    00
  • Android利用FlexboxLayout轻松实现流动布局

    接下来我将为您详细讲解“Android利用FlexboxLayout轻松实现流动布局”的完整攻略。 什么是FlexboxLayout FlexboxLayout 是 Android 4.4 版本引入的一种布局方式,它使用了所谓的弹性盒子模型,可以方便的实现响应式布局,并且使用方式与 CSS 中的 flexbox 一样,十分方便。 如何使用FlexboxLay…

    css 2023年6月11日
    00
  • jQuery实现每隔一段时间自动更换样式的方法分析

    下面我就来详细讲解一下“jQuery实现每隔一段时间自动更换样式的方法分析”的完整攻略。 一、需求分析 我们需要在页面中,每隔一段时间自动更换样式,这个需求需要使用JavaScript来完成。 二、实现思路 定义一个数组,存储要更换的样式; 设置一个计数器,记录当前显示的样式,并设置一个定时器来定时更换样式; 定义一个全局变量timer,用于存储定时器的引用…

    css 2023年6月10日
    00
  • DIV+CSS常见问题的14条原因分析

    下面我将详细讲解“DIV+CSS常见问题的14条原因分析”的完整攻略。 1. 稀奇古怪的盒模型问题 在使用 CSS 进行布局时,盒模型是非常重要的概念。不同的浏览器对于盒模型的 interpretation 会不同。建议在统一获取盒模型使用的方法或在使用时进行方法兼容。 2. 代码扁平化问题 在代码设计时,为了方便维护和后期开发,应该尽量采用扁平化的代码层级…

    css 2023年6月11日
    00
  • CSS 实现 10 种现代布局的代码

    CSS 实现现代布局有很多种方式,但是通常我们可以通过浮动、定位、Flexbox 和 CSS Grid 等技术来实现。下面是一份完整的攻略,让你了解如何实现 10 种常见的现代布局,并包含了两个示例说明。 1. 上下左右布局 这种布局方式也被称为定位布局,需要使用到 position 属性来设置元素的位置。通常,我们可以将容器设置为 position: re…

    css 2023年6月10日
    00
  • css3一款3D字体带阴影效果的实现步骤

    下面是详细讲解“CSS3一款3D字体带阴影效果的实现步骤”的完整攻略。 1. 编写HTML代码 首先,我们需要在HTML页面中添加要展示的文本。以实现一个带有3D字体和阴影效果的标题文本为例,可以在HTML代码中添加以下内容: <h1 class="font-effect-3d">3D TITLE</h1> 这里我…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部