小编pou*_*zad的帖子

使用Javascript修改CSS类

我想知道是否有一种简单的方法来改变JavaScript中的CSS类.我在这里经历了所有其他类似的问题,我找不到一个直截了当的简单解决方案.

我要做的是设置a的宽度和高度<div>以匹配我在我的网站上的图像(加载时).我已经知道图片尺寸,我可以将我的CSS设置为 - 但我希望我的脚本能够自己解决这个问题.

经过几个小时的研发(我是初学者),这就是我提出的:

var myImg = new Image();

myImg.src = "img/default.jpg";

myImg.onload = function(){

    var imgWidth = this.width;
    var imgHeight = this.height;

    document.getElementById("myBg").setAttribute('style', "height :"+ imgHeight + "px");
    document.getElementById("myBg").setAttribute('style', "width :"+ imgWidth + "px");

};
Run Code Online (Sandbox Code Playgroud)

但是,这仅设置id为"myBg"的元素的宽度.如果我颠倒高度和宽度的顺序,那么它只将高度设置为图像的高度.看起来首先它将元素的高度设置为图像高度,但是在它移动到下一个语句以设置宽度之后,高度值会回到最初在css中定义的值.

我在网上进行了进一步的研究,似乎使用JavaScript更改css(插入新属性,删除等)并不是一件容易的事.它完成了

document.styleSheets[i].cssRules[i]  or  document.styleSheets[i].addRule
Run Code Online (Sandbox Code Playgroud)

命令的类型,但所有在线和在stackoverflow上的教程都令人困惑和复杂.

我想知道是否有人熟悉document.styleSheets可以向我解释这个问题吗?

想象一下,我在单独的css文件中有这个类:

.container
{
    height: 600px;
    width: 500px;
}
Run Code Online (Sandbox Code Playgroud)

我想在加载时将高度和宽度更改为图片的尺寸.我该怎么做呢?

  • 我不想在我的html文件中定义一个新的"style"元素,我想更改css文件.
  • 我不应该在加载到页面之前知道图像尺寸.
  • 请不要jquery,我想使用标准JavaScript来做这件事.

谢谢.

javascript css

20
推荐指数
1
解决办法
4万
查看次数

Angular Lazyload 路由生成额外的块文件,前缀为 default~pages

我正在尝试为我目前正在处理的项目实施延迟加载路由。一切正常,我没有收到任何错误,当我转到新页面时,我还可以看到新的块文件加载。

但是,除了我预期的块文件之外,cli 还创建了一些带有前缀“default~pages”的额外文件,例如

default~pages-managers--managers-module~pages-hosts-hosts-module~pa~0e1f5bc0
Run Code Online (Sandbox Code Playgroud)

并且default~无论我登陆哪个页面,这些带有前缀的文件都会加载。例如,如果我在主页上,我会同时看到:

pages-home-home-module
Run Code Online (Sandbox Code Playgroud)

default~pages-managers--managers-module~pages-hosts-hosts-module~pa~0e1f5bc0
Run Code Online (Sandbox Code Playgroud)

有谁知道这些默认文件是什么以及如何摆脱它们?

angular-cli angular

11
推荐指数
3
解决办法
2729
查看次数

标签 统计

angular ×1

angular-cli ×1

css ×1

javascript ×1