Jak ustawić kolor tła CSS w HTML za pomocą JavaScript

Odpowiedzi:

155

Ogólnie rzecz biorąc, właściwości CSS są konwertowane na JavaScript poprzez nadanie im camelCase bez żadnych myślników. Tak background-colorsię stanie backgroundColor.

function setColor(element, color)
{
    element.style.backgroundColor = color;
}

// where el is the concerned element
var el = document.getElementById('elementId');
setColor(el, 'green');
David Wengier
źródło
3
Chciałbym dodać, że kolor oczywiście musi być w cudzysłowach element.style.backgroundColor = "kolor"; na przykład - element.style.backgroundColor = "pomarańczowy"; doskonała odpowiedź
Catto
W testach Selenium: ((IJavaScriptExecutor) WebDriver) .ExecuteScript ("arguments [0] .style.background = 'żółty';", webElement);
nexoma
@Catto W tym przypadku kolor jest argumentem funkcji, dlatego nie powinien być w cudzysłowie. Jednak masz rację, jeśli ustawiasz kolor, w JS konieczne byłyby podwójne cudzysłowy.
Bharat Mallapur
29

Może się okazać, że twój kod będzie łatwiejszy w utrzymaniu, jeśli zachowasz wszystkie swoje style itp. W CSS i po prostu ustawisz / usuniesz nazwy klas w JavaScript.

Twój CSS oczywiście wyglądałby tak:

.highlight {
    background:#ff00aa;
}

Następnie w JavaScript:

element.className = element.className === 'highlight' ? '' : 'highlight';
Ian Oxley
źródło
2
Powiedziałbym, że jest oczywiste, gdzie go umieścić - gdziekolwiek po kodzie HTML, który chcesz zmienić.
TeeJay
1
Dotyczy to w większości przypadków, ale nie w przypadku, gdy kolor (lub cokolwiek atrybut) jest zdefiniowana w konfiguracji, czy użytkownik wprowadził, nie można utworzyć klasę CSS dla każdej możliwej kolorze;)
Juan Mendes
23
var element = document.getElementById('element');
element.style.background = '#FF00AA';
tagi2k
źródło
20

Lub używając małego jQuery:

$('#fieldID').css('background-color', '#FF6600');
Wally Lawless
źródło
Najprawdopodobniej, ponieważ OP poprosił o Javascript;)
Lodder
7

Dodaj ten element skryptu do elementu body:

<body>
  <script type="text/javascript">
     document.body.style.backgroundColor = "#AAAAAA";
  </script>
</body>
james.garriss
źródło
6

var element = document.getElementById('element');

element.onclick = function() {
  element.classList.add('backGroundColor');
  
  setTimeout(function() {
    element.classList.remove('backGroundColor');
  }, 2000);
};
.backGroundColor {
    background-color: green;
}
<div id="element">Click Me</div>

Roger Causto
źródło
4

Możesz tego spróbować

var element = document.getElementById('element_id');
element.style.backgroundColor = "color or color_code";

Przykład.

var element = document.getElementById('firstname');
element.style.backgroundColor = "green";//Or #ff55ff

JSFIDDLE

Ajay Gupta
źródło
1
element.style.background-colornieprawidłowy JavaScript. Dlatego właściwości CSS są konwertowane na CamelCase.
CrazyIvan1974
4

Możesz to zrobić za pomocą JQuery:

$(".class").css("background","yellow");
bluelog
źródło
3

Odpowiedź KISS:

document.getElementById('element').style.background = '#DD00DD';
Zardiw
źródło
jak możemy to zrobić dla klasy?
Vignesh Subramanian
Na zajęciadocument.getElementByClass('element').style.background = '#DD00DD';
MD Ashik
3

Możesz użyć:

  <script type="text/javascript">
     Window.body.style.backgroundColor = "#5a5a5a";
  </script>
Saeed
źródło
3
$("body").css("background","green"); //jQuery

document.body.style.backgroundColor = "green"; //javascript

jest tak wiele sposobów, myślę, że jest to bardzo łatwe i proste

Demo On Plunker

Srikrushna
źródło
3
$('#ID / .Class').css('background-color', '#FF6600');

Używając jquery, możemy kierować na klasę lub Id elementu, aby zastosować tło css lub inne style

pragadeesh mahendran
źródło
1

możesz użyć

$('#elementID').css('background-color', '#C0C0C0');
hamed
źródło
to jest jquery not javascript
Vignesh Subramanian
@vignesh jQuery is JavaScript -__-
Novocaine
@Novocaine jQuery jest napisane przy użyciu JavaScript, tak. ale nadal $ nie zadziała, chyba że włączysz tę bibliotekę jQuery;)
Vignesh Subramanian
0

JavaScript:

document.getElementById("ID").style.background = "colorName"; //JS ID

document.getElementsByClassName("ClassName")[0].style.background = "colorName"; //JS Class

JQuery:

$('#ID/.className').css("background","colorName") // One style

$('#ID/.className').css({"background":"colorName","color":"colorname"}); //Multiple style
Panie Pandya
źródło
0

Zmiana CSS pliku HTMLElement

Możesz zmienić większość właściwości CSS za pomocą JavaScript, użyj tej instrukcji:

document.querySelector(<selector>).style[<property>] = <new style>

gdzie <selector>, <property>, <new style>są wszystkie Stringobiekty.

Zwykle właściwość style będzie miała taką samą nazwę, jak rzeczywista nazwa używana w CSS. Ale ilekroć jest więcej niż jedno słowo, będzie to przypadek wielbłąda: na przykład background-colorjest zamieniony za pomocąbackgroundColor .

Poniższa instrukcja ustawi tło #containerna kolor czerwony:

documentquerySelector('#container').style.background = 'red'

Oto krótkie demo zmieniające kolor pudełka co 0,5 s:

colors = ['rosybrown', 'cornflowerblue', 'pink', 'lightblue', 'lemonchiffon', 'lightgrey', 'lightcoral', 'blueviolet', 'firebrick', 'fuchsia', 'lightgreen', 'red', 'purple', 'cyan']

let i = 0
setInterval(() => {
  const random = Math.floor(Math.random()*colors.length)
  document.querySelector('.box').style.background = colors[random];
}, 500)
.box {
  width: 100px;
  height: 100px;
}
<div class="box"></div>


Zmiana CSS wielu HTMLElement

Wyobraź sobie, że chcesz zastosować style CSS do więcej niż jednego elementu, na przykład nadać kolor tła wszystkim elementom o nazwie klasy box lightgreen. Następnie możesz:

  1. wybierz elementy za pomocą .querySelectorAlli rozpakuj je w obiekcie Arrayo składni destrukturyzującej :

    const elements = [...document.querySelectorAll('.box')]
  2. pętla po tablicy za pomocą .forEachi zastosuj zmianę do każdego elementu:

    elements.forEach(element => element.style.background = 'lightgreen')

Oto demo:

const elements = [...document.querySelectorAll('.box')]
elements.forEach(element => element.style.background = 'lightgreen')
.box {
  height: 100px;
  width: 100px;
  display: inline-block;
  margin: 10px;
}
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>


Inna metoda

Jeśli chcesz zmienić wiele właściwości stylu elementu więcej niż raz, możesz rozważyć użycie innej metody: zamiast tego połącz ten element z inną klasą.

Zakładając, że możesz wcześniej przygotować style w CSS, możesz przełączać klasy, uzyskując dostęp classListdo elementu i wywołując togglefunkcję:

document.querySelector('.box').classList.toggle('orange')
.box {
  width: 100px;
  height: 100px;
}

.orange {
  background: orange;
}
<div class='box'></div>


Lista właściwości CSS w JavaScript

Oto pełna lista:

alignContent
alignItems
alignSelf
animation
animationDelay
animationDirection
animationDuration
animationFillMode
animationIterationCount
animationName
animationTimingFunction
animationPlayState
background
backgroundAttachment
backgroundColor
backgroundImage
backgroundPosition
backgroundRepeat
backgroundClip
backgroundOrigin
backgroundSize</a></td>
backfaceVisibility
borderBottom
borderBottomColor
borderBottomLeftRadius
borderBottomRightRadius
borderBottomStyle
borderBottomWidth
borderCollapse
borderColor
borderImage
borderImageOutset
borderImageRepeat
borderImageSlice
borderImageSource  
borderImageWidth
borderLeft
borderLeftColor
borderLeftStyle
borderLeftWidth
borderRadius
borderRight
borderRightColor
borderRightStyle
borderRightWidth
borderSpacing
borderStyle
borderTop
borderTopColor
borderTopLeftRadius
borderTopRightRadius
borderTopStyle
borderTopWidth
borderWidth
bottom
boxShadow
boxSizing
captionSide
clear
clip
color
columnCount
columnFill
columnGap
columnRule
columnRuleColor
columnRuleStyle
columnRuleWidth
columns
columnSpan
columnWidth
counterIncrement
counterReset
cursor
direction
display
emptyCells
filter
flex
flexBasis
flexDirection
flexFlow
flexGrow
flexShrink
flexWrap
content
fontStretch
hangingPunctuation
height
hyphens
icon
imageOrientation
navDown
navIndex
navLeft
navRight
navUp>
cssFloat
font
fontFamily
fontSize
fontStyle
fontVariant
fontWeight
fontSizeAdjust
justifyContent
left
letterSpacing
lineHeight
listStyle
listStyleImage
listStylePosition
listStyleType
margin
marginBottom
marginLeft
marginRight
marginTop
maxHeight
maxWidth
minHeight
minWidth
opacity
order
orphans
outline
outlineColor
outlineOffset
outlineStyle
outlineWidth
overflow
overflowX
overflowY
padding
paddingBottom
paddingLeft
paddingRight
paddingTop
pageBreakAfter
pageBreakBefore
pageBreakInside
perspective
perspectiveOrigin
position
quotes
resize
right
tableLayout
tabSize
textAlign
textAlignLast
textDecoration
textDecorationColor
textDecorationLine
textDecorationStyle
textIndent
textOverflow
textShadow
textTransform
textJustify
top
transform
transformOrigin
transformStyle
transition
transitionProperty
transitionDuration
transitionTimingFunction
transitionDelay
unicodeBidi
userSelect
verticalAlign
visibility
voiceBalance
voiceDuration
voicePitch
voicePitchRange
voiceRate
voiceStress
voiceVolume
whiteSpace
width
wordBreak
wordSpacing
wordWrap
widows
writingMode
zIndex
Ivan
źródło
0

Prosty js może rozwiązać ten problem:

document.getElementById("idName").style.background = "blue";
Mehadi Hassan
źródło
-1
$(".class")[0].style.background = "blue";
Jeff
źródło
Prawidłowych odpowiedzi na to pytanie jest więcej niż wystarczająco, a ta odpowiedź nie oferuje niczego lepszego niż inne odpowiedzi.
Nowokaina
Jak powiedziała Novocaine, tutaj jest wiele odpowiedzi. Ale w przyszłości rozważ edycję swojego posta, aby dodać więcej wyjaśnień na temat tego, co robi twój kod i dlaczego rozwiąże problem. Odpowiedź, która w większości zawiera tylko kod (nawet jeśli działa), zwykle nie pomoże OP w zrozumieniu problemu.
SuperBiasedMan