2015-05-04 12 views
8

Voglio creare un quadrato davanti a un intervallo. Qualcosa di simile a questo image.Come posso usare: prima della proprietà per creare un quadrato prima di un intervallo

enter image description here

ma non sono riusciti a creare questo con span:before proprietà. È possibile creare con questo? Se sì, allora qualcuno può dirmi come posso farlo?

Ho creato questo con semplice CSS. Qui è il mio codice

HTML:

<div id="five_day_table"> 
    <h3>Annual Cleaning Schedule</h3> 
    <div class="r-cl"><span></span>Forecasted Rain Clean</div> 
    <div class="m-cl"><span></span>Forecasted Manual Clean</div> 
    <div class="cm-cl"><span></span>Completed Manual Clean</div> 
    <div class="d-cl"><span></span>Forecasted Dirty Rain</div> 
</div> 

e CSS

#five_day_table span { 
    width: 14px; 
    height: 14px; 
    display: block; 
    float: left; 
    margin: 1px 3px 0px 0px; 
} 
.r-cl span 
{ 
background: Blue; 
} 
.m-cl span 
{ 
background: red; 
} 
.cm-cl span 
{ 
background: green; 
} 
.d-cl span 
{ 
background: brown; 
} 

Ecco il link di lavoro. Ma voglio usare solo questo HTML.

<div id="five_day_table"> 
    <h3>Annual Cleaning Schedule</h3> 
    <span class='one'>Forecasted Rain Clean</span> 
    <span class='two'>Forecasted Manual Clean</span> 
    <span class='three'>Completed Manual Clean</span> 
    <span class='four'>Forecasted Dirty Rain</span> 
</div> 

Com'è possibile?

risposta

10

è necessario aggiungere content: "" per span:before lavorare

#five_day_table span { 
 
    display: block; 
 
    margin: 1px 3px 0px 0px; 
 
} 
 
span:before { 
 
    content: ""; 
 
    display: inline-block; 
 
    width: 15px; 
 
    height: 15px; 
 
    margin-right: 5px; 
 
} 
 
.one:before { 
 
    background: Blue; 
 
} 
 
.two:before { 
 
    background: red; 
 
} 
 
.three:before { 
 
    background: green; 
 
} 
 
.four:before { 
 
    background: brown; 
 
}
<div id="five_day_table"> 
 
    <h3>Annual Cleaning Schedule</h3> 
 
    <span class='one'>Forecasted Rain Clean</span> 
 
    <span class='two'>Forecasted Manual Clean</span> 
 
    <span class='three'>Completed Manual Clean</span> 
 
    <span class='four'>Forecasted Dirty Rain</span> 
 

 
</div>

+0

bel lavoro .. thanx – MKD

1

Prova questa.

CodePen Sample

Quello che dovete fare, è quello di rimuovere larghezza da portata, e la classe cambiamento. Si noti che :before deve avere la proprietà content: '' per poter essere visualizzata.

Ecco il codice HTML:

<div id="five_day_table"> 
    <h3>Annual Cleaning Schedule</h3> 
    <span class='one'>Forecasted Rain Clean</span> 
    <span class='two'>Forecasted Manual Clean</span> 
    <span class='three'>Completed Manual Clean</span> 
    <span class='four'>Forecasted Dirty Rain</span> 
</div> 

e CSS:

#five_day_table span { 
    height: 14px; 
    display: block; 
    margin: 1px 3px 3px 0px; 
} 
#five_day_table span:before{ 
    content: ''; 
    display: inline-block; 
    width: 14px; 
    height: 14px; 
    margin-right: 5px; 
} 
.one:before{ 
    background: Blue; 
} 
.two:before{ 
    background: red; 
} 
.three:before{ 
    background: green; 
} 
.four:before{ 
    background: brown; 
} 
1

http://jsfiddle.net/4p3632pg/

questo dovrebbe essere quello che stai cercando per

#five_day_table > span { 
    display:block; 
} 
#five_day_table > span::before { 
    content:''; 
    width: 14px; 
    height: 14px; 
    display: block; 
    float: left; 
    margin: 1px 3px 0px 0px; 
} 
.one::before 
{ 
background: Blue; 
} 
.two::before 
{ 
background: red; 
} 
.three::before 
{ 
background: green; 
} 
.four::before 
{ 
background: brown; 
} 
2

span{ 
 
    display:block; 
 
} 
 

 
#five_day_table span:before { 
 
    width: 14px; 
 
    height: 14px; 
 
    display: inline-block; 
 
    margin: 1px 3px 0px 0px; 
 
    content:""; 
 
} 
 
.one:before 
 
{ 
 
background: Blue; 
 
} 
 
.two:before 
 
{ 
 
background: red; 
 
} 
 
.three:before 
 
{ 
 
background: green; 
 
} 
 
.four:before 
 
{ 
 
background: brown; 
 
}
<div id="five_day_table"> 
 
    <h3>Annual Cleaning Schedule</h3> 
 
    <span class='one'>Forecasted Rain Clean</span> 
 
    <span class='two'>Forecasted Manual Clean</span> 
 
    <span class='three'>Completed Manual Clean</span> 
 
    <span class='four'>Forecasted Dirty Rain</span> 
 
</div>

Just Add :before nella tua vecchia CSS e cambiare il block a inline-block in modo che rientri in una linea e hanno un block per l' tutta span e di riposo modificare i selettori CSS per :before così Questo è prende il suo rispettivo colore.

4

È possibile farlo con l'aggiunta di "contenuti: '■';"

#five_day_table span { 
 
    width: 14px; 
 
    height: 14px; 
 
    margin: 1px 0 0px 0px; 
 
} 
 

 
#five_day_table span:before { 
 
    content: '■'; 
 
    margin-right: 2px; 
 
    font-size: 25px; 
 
    vertical-align: middle; 
 
    display: inline-block; 
 
    margin-top: -5px; 
 
} 
 

 
#five_day_table span:after { 
 
    content: ''; 
 
    display: block; 
 
    clear:both; 
 
} 
 

 
span.one:before 
 
{ 
 
color: Blue; 
 
} 
 
span.two:before 
 
{ 
 
color: red; 
 
} 
 
span.three:before 
 
{ 
 
color: green; 
 
} 
 
span.four:before 
 
{ 
 
color: brown; 
 
}
<div id="five_day_table"> 
 
    <h3>Annual Cleaning Schedule</h3> 
 
    <span class='one'>Forecasted Rain Clean</span> 
 
    <span class='two'>Forecasted Manual Clean</span> 
 
    <span class='three'>Completed Manual Clean</span> 
 
    <span class='four'>Forecasted Dirty Rain</span> 
 
</div>

+0

Questa è una buona risposta, ma ha bisogno di regolare le dimensioni. –

+0

@zlatkoVujicic Ho aggiornato il mio codice, con la dimensione del font di 25px. Puoi aumentare la dimensione aumentando la dimensione del carattere. –

+0

yeh lo so, e sembra più flessibile quando è fatto a modo tuo –

Problemi correlati