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');

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';

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';

20

Lub używając małego jQuery:

$('#fieldID').css('background-color', '#FF6600');

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>

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>


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


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");

3

Odpowiedź KISS:

document.getElementById('element').style.background = '#DD00DD';

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>

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


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


1

możesz użyć

$('#elementID').css('background-color', '#C0C0C0');

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

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

0

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

document.getElementById("idName").style.background = "blue";

-1
$(".class")[0].style.background = "blue";

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.