I am building a vertical timeline as a < ul > with the < li >s as events. This is the intent:
I've customized the bullets easily enough, and I made the vertical line with a background-gradient; the one thing I haven't been able to do is terminate the vertical line at top and bottom.
So far, it looks like this:
My SCSS code:
ul.timeline {
list-style: none;
color: red;
font-size: .8em;
/* Permalink - use to edit and share this gradient: http://colorzilla.com/gradient-editor/#ffffff+0,ffffff+5,d8d8d8+6,d8d8d8+7,ffffff+8,ffffff+100 */
background: #ffffff; /* Old browsers */
background: -moz-linear-gradient(left, #ffffff 0%, #ffffff 1px, #d8d8d8 2px, #d8d8d8 3px, #ffffff 4px, #ffffff 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(left, #ffffff 0%,#ffffff 1px, #d8d8d8 2px, #d8d8d8 3px, #ffffff 4px,#ffffff 100%); /* Chrome10-25,Safari5.1-6 */
background: linear-gradient(to right, #ffffff 0%,#ffffff 1px, #d8d8d8 2px, #d8d8d8 3px, #ffffff 4px,#ffffff 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ffffff',GradientType=1 ); /* IE6-9 */
background-position: 29px 0;
li {
&::before {
content: "\26AB";
font-size: 1.3em;
color: #d8d8d8;
display: inline-block;
width: 1em;
margin-left: -1em;
vertical-align: middle;
}
a {
color: black;
text-decoration: underline;
}
}
}
My HTML code:
<ul class="timeline">
<li>asd as</li>
<li>werwer we</li>
</ul>
I know I can scrap the whole custom-bullet and background-gradient css and do this with background-images, I was just hoping to find a css-only solution.
You can use pseudo-elements for this, one for circle and other one for the line, and :not(:last-child) so you don't set line on last element.
ul {
list-style: none;
}
li {
position: relative;
padding: 10px;
}
li a {
color: gray;
}
li:before {
content: '';
width: 16px;
height: 16px;
border-radius: 50%;
background: #D8D8D8;
position: absolute;
left: -15px;
top: 50%;
transform: translateY(-40%);
}
li:not(:last-child):after {
content: '';
width: 2px;
height: 100%;
background: #D8D8D8;
position: absolute;
left: -8px;
top: 50%;
}
<ul class="timeline">
<li>asd as</li>
<li>werwer we</li>
<li>werwer we</li>
</ul>
Method using background-gradient...
ul.timeline {
list-style: none;
color: red;
font-size: .8em;
position: relative;
}
.timeline::before {
position: absolute;
content: "";
display: block;
height: 80px;
width: 30px;
top: 6px;
left: 0;
background: radial-gradient(circle, grey 20%, transparent 20%);
background-size: 50px 25px;
}
.timeline::after {
position: absolute;
content: "";
display: block;
top: 8px;
left: 24px;
height: 70px;
width: 1px;
background: grey;
}
.timeline li {
padding: .5em;
}
a {
color: black;
text-decoration: underline;
}
<ul class="timeline">
<li>asd as</li>
<li>werwer we</li>
<li>werwer we</li>
</ul>
I have a semi-round button. But I don't know how to bend it for my semi-round button in it's border.
.semi-circle {
display: inline-block;
padding: 9px 16px;
border-radius: 999px !important;
text-align: center;
/*border: 10px solid transparent;*/
/* -moz-border-image: -moz-linear-gradient(right, #FC913A 0%, #FF4E50 100%);
-webkit-border-image: -webkit-linear-gradient(right, #FC913A 0%, #FF4E50 100%);
border-image: linear-gradient(to left, #FC913A 0%, #FF4E50 100%);*/
/*border-image-slice: 1;*/
border: linear-gradient(to right, green 0%, blue 100%);
/*background-image: linear-gradient(to left, #FC913A 0%, #FF4E50 100%);*/
background-image: -o-linear-gradient(to left, #FC913A 0%, #FF4E50 100%);*/
background-image: -moz-linear-gradient(to left, #FC913A 0%, #FF4E50 100%);*/
background-image: -webkit-linear-gradient(to left, #FC913A 0%, #FF4E50 100%);*/
background-image: -ms-linear-gradient(to left, #FC913A 0%, #FF4E50 100%);*/
*/
}
Forgive me for not being able to embed the image because of lack of reputation. Thx for the stack overflow community for its great service.
Here is solution. It works fine in webkit. In other browsers text color is solid.
HTML
<button data-text="Round button"></button>
<button class="active" data-text="Active round button"></button>
CSS
body {
background: #384041;
}
*,
*:before,
*:after {
box-sizing: border-box;
}
button {
display: inline-block;
border: none;
outline: none;
appearance: none;
background: red;
position: relative;
z-index: 3;
height: 60px;
border-radius: 30px;
padding: 0 21px;
font-size: 21px;
box-shadow: -1px -1px 1px 0 black;
background: #4f4f4f;
}
button:before {
content: attr(data-text);
min-width: 144px;
z-index: -1;
border-radius: 27px;
color: #4f4f4f;
}
#media screen and (-webkit-min-device-pixel-ratio:0) { button:before {
background: #4f4f4f;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}}
button:after {
content: '';
position: absolute;
left: 3px;
right: 3px;
top: 3px;
bottom: 3px;
z-index: -2;
border-radius: 30px;
background: #151515;
}
button:hover {
cursor: pointer;
background: linear-gradient(to right, #2084c3 0%, #00caa0 100%);
}
.active {
background: linear-gradient(to right, #2084c3 0%, #00caa0 100%);
}
.active:before{
color: #2084c3;
}
#media screen and (-webkit-min-device-pixel-ratio:0) { .active:before {
background: linear-gradient(to right, #2084c3 0%, #00caa0 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}}
Demo
There are probably better ways to do this, but without further thinking I'd try something like this:
<style type="text/css">
.semi_outer {
padding: 2px;
text-align: center;
border-radius: 11px;
background: linear-gradient(to right, #0f0, #00f);
}
.semi_inner {
margin: 2px;
border-radius: 7px;
background-color: #000;
color: #0f0;
}
.semi_outer:hover {
background: linear-gradient(to right, #c00, #0c0);
}
.semi_outer:active {
background: linear-gradient(to right, #f00, #0f0);
}
</style>
<div class="semi_outer">
<div class="semi_inner">
semi_inner
</div>
</div>
This is your semi-round button . may be it will be helpfull for you.
.outer {
padding: 2px;
text-align: center;
border-radius: 11px;
background: linear-gradient(to right, #0f0, #00f);
width: 200px;
height:30px;
}
.inner {
margin: 3px;
border-radius: 7px;
background-color: #000;
color: #0f0;
height:25px;
}
.outer:hover {
background: linear-gradient(to right, #c00, #0c0);
}
.outer:active {
background: linear-gradient(to right, #f00, #0f0);
}
<div class="outer">
<div class="inner">
BUTTON
</div>
</div>
I don't understand why my div under "Rechercher par" is on the bottom of the row and not on top.
Here's my html:
<div class="col-md-5">
<h5 class="margin-bottom-null"><span class="widget-title">Rechercher par</span></h5>
<div class="label-ombrage"></div>
<div class="div-inline">
<div><img src="Content/bullet-empty.png" alt=""><span class="choice-search-item">CRÉEZ UN COMPTE</span></div>
<div><img src="Content/bullet-empty.png" alt=""><span class="choice-search-item">VOS CRITÈRES DE RECHERCHES</span></div>
<div><img src="Content/bullet-empty.png" alt=""><span class="choice-search-item">INFOS SUR LE SITE</span></div>
</div>
<div class="line-separator div-inline pull-right"></div>
</div>
And the fiddle:
http://jsfiddle.net/4sfkc/1/
.label-ombrage {
width: 60px;
height: 256px;
display: inline-block;
background-color:#cbcbcb;
}
.widget-title {
color: #659900; /* text color */
font-family: "Dosis";
font-size: 1.5em;
font-weight: bold;
}
h5 {
padding-left: 30px;
}
.bottom-buffer-medium {
margin-bottom: 30px;
}
.div-inline {
display: inline-block;
}
.line-separator {
width: 1px;
height: 256px;
/*background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMjM2IiBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJub25lIj48bGluZWFyR3JhZGllbnQgaWQ9ImhhdDAiIGdyYWRpZW50VW5pdHM9Im9iamVjdEJvdW5kaW5nQm94IiB4MT0iNTAlIiB5MT0iMTAwJSIgeDI9IjUwJSIgeTI9Ii0xLjQyMTA4NTQ3MTUyMDJlLTE0JSI+CjxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmZmYiIHN0b3Atb3BhY2l0eT0iMSIvPgo8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2NiY2JjYiIgc3RvcC1vcGFjaXR5PSIxIi8+CjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgIDwvbGluZWFyR3JhZGllbnQ+Cgo8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMSIgaGVpZ2h0PSIyMzYiIGZpbGw9InVybCgjaGF0MCkiIC8+Cjwvc3ZnPg==);*/ /* gradient overlay */
background-image: -moz-linear-gradient(bottom, #fff 0%, #cbcbcb 50%, #fff 100%); /* gradient overlay */
background-image: -o-linear-gradient(bottom, #fff 0%, #cbcbcb 50%, #fff 100%); /* gradient overlay */
background-image: -webkit-linear-gradient(bottom, #fff 0%, #cbcbcb 50%, #fff 100%); /* gradient overlay */
background-image: linear-gradient(bottom, #fff 0%, #cbcbcb 50%, #fff 100%); /* gradient overlay */
}
.border-bottom {
border-bottom: #cbcbcb 1px solid;
}
.margin-bottom-ligh {
margin-bottom: 10px;
padding-bottom: 10px;
}
.margin-bottom-null {
margin-bottom: 0;
}
.link-utility {
color: #999; /* text color */
font-family: "Dosis";
font-size: 14px;
margin-left: 15px;
}
.choice-search-item {
color: #999; /* text color */
font-family: "Dosis";
font-size: 22px;
font-weight: bold;
}
.bullet-img {
height: 31px;
background: url(../Content/recherche_bullet.png) 0 31px !important;
}
.active-bullet .bullet-img {
height: 31px;
background: url(../Content/recherche_bullet.png) 0 0 !important;
}
What's I'm looking for is to position the div with content "Vos critères de recherche ..." on the top, the div class="div-inline" in the code upper.
I use Bootstrap 3.
Add vertical-align: top; on .div-inline
I have a centered page layout for a website I'm designing, and I've used Ryan Fait's CSS Sticky Footer, but I just can't seem to extend my content div tag (div#container in the code below) down to the footer.
Here's my HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>MathExplained.com</title>
<link rel="stylesheet" type="text/css" href="style.css" media="screen" />
<link rel="icon" type="image/ico" href="https://www.iconfinder.com/icons/21328/download/png/24">
</head>
<body>
<div class="wrapper">
<div id="headerbar"><div id="header">
<h1>MathExplained.com</h1>
<div id="nav">
<ul>
<li>Contact</li>
<li>Archives</li>
<li>About</li>
</ul>
</div>
</div></div>
<img id="header-underline" src="files/header-underline.png" alt="" />
<div id="container">
<div id="contentmargin">
<div class="post">
<h2>What Pi Really Means</h2>
<h3>5th September 2013</h3>
<div class="post-content">
<iframe src="https://www.youtube.com/embed/yJ-HwrOpIps" allowfullscreen></iframe>
<p>Lorem ipsum dolor sit amet</p>
</div>
</div>
</div>
</div>
<div class="push"></div>
</div>
<div class="footer">
Designed by Riley Wheb <br />
WhebDesigns 2013
</div>
</body>
</html>
...And my CSS (here be dragons):
* {
margin: 0;
}
html,body {
height: 100%;
}
body {
background: url('files/bg2.gif');
display: block;
font-family: Tahoma, Geneva, sans-serif;
margin: 0;
padding: 0;
}
.wrapper {
min-height: 100%;
height: auto !important;
height: 100%;
margin: 0 auto -35px; /* the bottom margin is the negative value of the footer's height */
}
div#headerbar {
background: rgba(73,155,234,1);
background: -moz-linear-gradient(top, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
background: -webkit-gradient(left top, left bottom, color-stop(0%, rgba(73,155,234,1)), color-stop(100%, rgba(32,124,229,1)));
background: -webkit-linear-gradient(top, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
background: -o-linear-gradient(top, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
background: -ms-linear-gradient(top, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
background: linear-gradient(to bottom, rgba(73,155,234,1) 0%, rgba(32,124,229,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#499bea', endColorstr='#207ce5', GradientType=0 );
margin: 0;
padding: 0;
}
div#header {
display: block;
height: 38px;
margin: 0 auto;
overflow: hidden;
padding: 0;
width: 750px;
}
div#header > h1 {
float: left;
margin: 0;
padding: 0;
position: relative; top: -2px;
}
div#header > h1 > a:link, div#header > h1 > a:visited {
color: white;
font: 28px/35px "Lucida Console", monospace;
text-decoration: none;
text-shadow: -1px -1px 0 gray;
vertical-align: middle;
}
div#header > h1 > a:hover, div#header > h1 > a:active {
}
div#nav {
float: right;
margin: 0;
padding: 0;
}
div#nav > ul {
height: 100%;
list-style-type: none;
margin: 0;
overflow: hidden;
padding: 0;
}
div#nav > ul > li {
float: right;
height: 100%;
margin: 0;
padding: 0;
text-align: center;
width: 150px;
}
div#nav > ul > li > a:link, div#nav > ul > li > a:visited {
color: white;
display: block;
font: 16px Verdana,sans-serif;
height: 100%;
margin: 0 25px;
padding: 10px 0;
text-decoration: none;
text-shadow: -1px -1px 0 gray;
}
div#nav > ul > li > a:hover, div#nav > ul > li > a:active {
background: -moz-linear-gradient(top, rgba(255,255,255,0.25) 0%, rgba(255,255,255,0.25) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.25)), color-stop(100%,rgba(255,255,255,0.25))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,255,255,0.25) 0%,rgba(255,255,255,0.25) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#40ffffff', endColorstr='#40ffffff',GradientType=0 ); /* IE6-9 */
}
img#header-underline {
padding: 0; margin: 0;
position: absolute;
top: 38px;
height: 4px;
}
div#container {
background: rgb(255,255,255); /* Old browsers */
background: -moz-linear-gradient(top, rgba(255,255,255,1) 0%, rgba(229,229,229,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(229,229,229,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(255,255,255,1) 0%,rgba(229,229,229,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e5e5e5',GradientType=0 ); /* IE6-9 */
border: 3px solid #D6D6D6;
display: block;
height: 100%;
margin: 0 auto;
width: 800px;
}
div#contentmargin {
padding: 20px 25px;
}
div.post {
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
border: 1px solid #BDBDBD;
position: relative;
margin: 0 0 60px 0;
padding: 0 10px 20px 10px;
overflow: hidden;
}
div.post > h2 {
font: italic 24px/26px "Lucida Grande", "Lucida Sans Unicode", Helvetica, Sans-Serif;
letter-spacing: normal;
margin: 15px 0 0 0; padding: 0;
}
div.post > div.post-content {
clear: both;
}
div.post > div.post-content > p {
font: 12px "Lucida Grande", "Lucida Sans Unicode", Helvetica, Sans-Serif;
padding: 5px 0;
}
div.post > h3 {
font: italic 12px/14px "Lucida Grande", "Lucida Sans Unicode", Helvetica, Sans-Serif;
margin: 0 0 10px 0; padding: 0;
}
iframe {
width: 726px;
height: 416px;
border: 1px inset #BDBDBD;
}
.footer, .push {
height: 35px; /* '.push' must be the same height as 'footer' */
}
div.footer {
background: rgba(0,0,0,0.8);
border-top: 2px solid black;
color: gray;
font: 12px "Lucida Grande", "Lucida Sans Unicode", Helvetica, Sans-Serif;
text-align: center;
padding: 10px 0;
}
Here's a screenshot of what it looks like now.
And here's what I would like to achieve.
The .wrapper has height: auto !important; and also 100%. The 100% will be ignored and only the !important will be used.
Delete the auto !important height of the .wrapper element and adjust the footer css. You need to pay attention at the .wrapper margin too!
change the css:
div#contentmargin {
padding: 20px 25px;
height:100%
}
.wrapper {
height: 100%;
}
Have you considered using the <header>, <main> and <footer> tags instead of your current divs? They will automatically scale and fill 100% of your screen.
For some reason the Menu div is floating too high when the menu is up but when it closes it's perfect. I'm not really sure what to do to bring that Menu div down to touch the right side div under it
footer {
width: 100%;
position: absolute;
bottom: 0;
left: 0;
}
#footer-content {
display: none;
}
#footer-left {
width: 20%;
height: 145px;
float: left;
background-color: #52291c;/*#805f4c;*/
opacity: 0.8;
} #footer-left h3 {
width: 95%;
font-size: 20px;
font-weight: lighter;
margin-top: 95px;
opacity: 1;
text-align: right;
} #footer-left h3 a {
color: #fff;
text-shadow: 1px 1px #000;
text-transform: lowercase;
}
#footer-right {
width: 80%;
height: 145px;
float: right;
background-color: #B29F63; /*#B29F63*/
opacity: 0.3;
} #footer-right ul {
margin: 30px 15px;
font-size: 24px;
} #footer-right ul li a {
color: #52291c;
}
.doing-tricks {
width: 150px;
position: relative;
left: 21%;
top: 132px;
font-size: 24px;
z-index: 100;
} .doing-tricks a {
color: #52291c;
}
.toggle-footer {
width: 100px;
margin: 0px auto;
padding: 10px;
cursor: pointer;
color: #52291c;
text-align: center;
text-shadow: 1px 1px #fff;
background: #B29F63;
background: -moz-linear-gradient(top, rgba(254,255,255,1) 0%, rgba(178,159,99,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(254,255,255,1)), color-stop(100%,rgba(178,159,99,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(254,255,255,1) 0%,rgba(178,159,99,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(254,255,255,1) 0%,rgba(178,159,99,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(254,255,255,1) 0%,rgba(178,159,99,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(254,255,255,1) 0%,rgba(178,159,99,1) 100%); /* W3C */
opacity: 0.8;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
}
jFiddle: http://jsfiddle.net/rFdwr/1/
Make the .doing-tricks's position absoluteinstead of relative
.doing-tricks {
...
position: absolute;
...
}
Then you'll need to adjust the top positions of your texts inside the footer.