我正在尝试创建一个包含3个按钮的页面,使背景更改颜色。理论上我知道如何做到这一点。我一直在尝试构建改变背景颜色的方法,但每当我改变颜色时,都是因为新的样式元素与旧样式元素重叠,所以我正在寻找一种方法来删除前一个元素。新的一个已创建,但我还没有找到它。



var backgroundColor = {
 &#的xD;
 red:function backgroundRed(){
 var sheet = document.createElement('style');
 sheet.setAttribute('id','redBG');
 sheet.innerHTML =“body {background-color:red;}”;
 document.body.appendChild(片材);&#的xD;
 },&#的xD;
 blue:function backgroundBlue(){
 var sheet = document.createElement('style');
 sheet.setAttribute('id','blueBG');
 sheet.innerHTML =“body {background-color:blue;}”;
 document.body.appendChild(片材);&#的xD;
 },&#的xD;
绿色:功能backgroundGreen(){
 var sheet = document.createElement('style');
 sheet.setAttribute('id','greenBG');
 sheet.innerHTML =“body {background-color:limegreen;}”;
 document.body.appendChild(片材);&#的xD;
 },&#的xD;
 deletePrevious:function(){
 // ???
 &#的xD;
 &#的xD;
 },&#的xD;
 };&#的xD;
 &#的xD;
 var applyColor = {
 applyRed:function(){
 //一种方法,当应用新的背景颜色时删除前一个
 backgroundColor.red();&#的xD;
 },&#的xD;
 applyBlue:function(){
 backgroundColor.blue();&#的xD;
 },&#的xD;
 applyGreen:function(){
 backgroundColor.green();&#的xD;
 }&#的xD;
 } 代码>
&#的xD;
 这是我到目前为止编写的代码。问题是,当我运行它时,会发生以下情况:重叠元素


如何制作删除先前元素的方法?我应该将元素嵌套在div中吗?


编辑:结果我疯狂地过度思考这个问题。我现在已经学习了大约2个月的JS,还有很长的路要走。 Andrew Lohr的评论有效地取代了我创建的所有backgroundColor函数。我也是StackOverflow的新手,所以我还没有找到一种方式来评价他的评论。我需要更多地了解DOM以及更简单的修改方法。


感谢大家的回复和帮助。

答案 0 :(得分:1)
你看起来对JS很熟悉,所以告诉我你是否需要一个例子。
使用'themeCSS'创建样式标记。然后,每次要添加/替换CSS时,请使用:
Option Explicit
Private Sub CommandButton1_Click()
' Purpose: Change view between given image and no image
Dim sImgName As String ' picture name string
sImgName = "C:\Temp\MyPicture.gif"" ' <<< choose your picture name"
With Me.Image1
If .Picture Is Nothing Then ' picture property has been cleared already
.Picture = LoadPicture(sImgName)
Else ' a picture is already displayed
.Picture = LoadPicture(vbNullString) ' clear it now
End If
End With
End Sub
这样,它总会替换以前的CSS:)
答案 1 :(得分:0)
只需在<style>
class`属性中设置一个设置整体主题的值,而不是更改整个CSS 标记,并且所有CSS都基于该主题。
body.theme-red {
background-color: red;
}
body.theme-blue {
background-color: blue;
}
body.theme-green {
background-color: green;
}
.theme-red h1 {
color: black
}
.theme-blue h1 {
color: yellow;
}
.theme-green h1 {
color: red;
}
或者,将您的CSS分成三个文件,只根据主题加载正确的文件。
或者,将CSS分成三个文件并使用Alternate Style Sheets。