Is it possible to change the background color on button click; of the entire document, using only CSS and HTML5?
(e.g.: it's trivial in JavaScript)
Is it possible to change the background color on button click; of the entire document, using only CSS and HTML5?
(e.g.: it's trivial in JavaScript)
Based on the fiddle I posted in the comments I've modified it very slightly to use the Bootstrap button CSS.
Just include Bootstrap's CSS file then use the code below.
<label for="check" class="btn btn-default">Toggle background colour</label>
<input type="checkbox" id="check" />
<div></div>
div {
width: 100%;
height: 100%;
background: #5CB85C;
position: absolute;
top: 0;
left: 0;
z-index: 1;
}
label.btn {
position: absolute;
top: 10px;
left: 10px;
z-index: 2;
}
input[type="checkbox"]{
display: none;
}
input[type="checkbox"]:checked + div{
background: #5BC0DE;
}
This uses the adjacent sibling selector.
Here it is working: http://jsfiddle.net/eYgdm/ (I've added *-user-select: none; to prevent selection of the label text but it's not required for the label to work)
Chrome, Firefox [Desktop & Mobile] (Gecko) ≥ 1.0, Internet Explorer ≥ 7, Opera ≥ 9 and Safari ≥ 3 References: Attribute selectors and Adjacent sibling selectors
You could do something like this -- using the adjacent css selector :
<button class="btn">button</button>
<div class="content"></div>
btn:active + .content{
background: blue;
}
blue using just CSS, or is what @frenchie said 100% without exception?You can (ab?)use the :target selector. This probably won't work in older browsers. Here's a super simple example I made that toggles the background when the link is clicked.
The concept is to apply CSS styling to targeted elements. In the code below, clicking the link will target the body's ID, which applies the style in body:target (changing the background color).
<html>
<head>
<style>
body { background-color:#333; }
body:target { background-color:#fff; }
</style>
</head>
<body id="myBody">
<a href="#myBody">Click</a>
</body>
</html>
+to add interactive effects)<label>and a hidden checkbox.