2016-01-04 14 views
6

Ho un div che contiene tutti questi elementi:Overlay un div in cima ad un elemento di input

<div id="container"> 
    <input type="text" /> 
    <div id="click"></div> 
</div> 

voglio per lo stile in un modo in modo che il div con id=click sarà nell'angolo destro della l'elemento di input.

Il CSS ho applicato in testo è:

text-align: left; 
width: 400px; 

Nel mio click div ho:

width: 30px; 
height: 30px; 

In sostanza sarebbe simile a questa:

[____INPUT___________________{DIV}] 

io non sono certo come si può modare il div in modo da posizionarlo sopra l'elemento di input. In questo momento si trova direttamente a destra di esso.

+0

Can u fare una demo jsfiddle ? –

+0

Puoi usare 'input-group' di [Bootstrap] (http://getbootstrap.com/components/#input-groups) – Ravimallya

risposta

2

* { 
 
    box-sizing: border-box; /* gives padding and border from inside */ 
 
} 
 
#container { 
 
    position: relative; /* for absolute child element */ 
 
    display: inline-block; /* to take the width of the input */ 
 
} 
 
input { 
 
    text-align: left; 
 
    width: 400px; 
 
    height: 30px; /* added to match the height of the #click div */ 
 
    outline: 0; /* to remove outline when focused */ 
 
} 
 
#click { 
 
    width: 30px; 
 
    height: 30px; 
 
    position: absolute; /* to align it to right and positon it over the input */ 
 
    top: 0; 
 
    right: 0; 
 
    background: lightgrey; 
 
}
<div id="container"> 
 
    <input type="text" /> 
 
    <div id="click"></div> 
 
</div>

+0

questo è esattamente ciò che sto cercando. E se volessi centrare 'container' nel mezzo della pagina. Ho provato a fare 'margin-left: auto' e' margin-right: auto' ma non funziona – ogk

+0

c'è un genitore per '# container'? –

+0

sì è in un altro div chiamato 'outercontainer' – ogk

1

Prova lo stile di seguito.

<div id="container"> 
    <input type="text" style="float: left;" /> 
    <div id="click" style="float: left; position: relative; left: -30px;"></div> 
</div> 

Se l'immersione va sotto la casella di testo, provate ad applicare z-index.

0

È possibile utilizzare float:right a click div.

+0

sì ma questo lo fa fluttuare fuori dall'ingresso, voglio il div all'interno dell'input input – ogk

+0

input [type = "text"] {float: left;} .click {float: left; margin-left: 5px;} –

0

È possibile aggiungere un CSS quando si fa clic su div

float : right; 
margin-left : (as many pixel you want)px;   
0

si dovrebbe cercare

display:inline 

proprietà su DIV#click elemento. come ho fatto in questo fiddle

2

È possibile utilizzare position:absolute per la div#click a controllarlo, ma assicurarsi che il #container ha position:relative

JS Fiddle

#container{ 
 
    margin:0 auto; 
 
    width:300px; 
 
    position:relative; 
 
    outline:2px solid #060; 
 
} 
 
#container #click{ 
 
    width:40px; 
 
    line-height:36px; 
 
    background-color:#090; 
 
    color:white; 
 
    text-align:center; 
 
    position:absolute; 
 
    right:0; 
 
    top:0; 
 
} 
 
#container input[type="text"]{ 
 
    width:298px; 
 
    height:30px; 
 
    padding:right:40px; 
 
}
<br> 
 
<div id="container"> 
 
    <input type="text" /> 
 
    <div id="click">GO</div> 
 
</div>

+0

questo è esattamente quello che sto cercando. E se volessi centrare 'container' nel mezzo della pagina. Ho provato a fare 'margin-left: auto' e' margin-right: auto' ma non funziona – ogk

+0

aggiungilo al '#container {margin: 0 auto;}' controlla questo https://jsfiddle.net/j39c0p4s/1/ –

+0

Ho aggiornato la risposta –

Problemi correlati