Quando ho un div
con position: absolute
, e in essa è un'altra div
con position: absolute
il div interno posizionerà nel telaio data tramite la (involucro) div esterno div genitore. Ora voglio creare una classe (css) chiamata error_message che si posiziona esattamente al centro del sito, indifferente da dove viene chiamato, quindi ho bisogno di rompere ogni div avvolto attorno al messaggio error_message .. Come faccio a fare questo?break su di
risposta
Ho avuto un problema simile con il posizionamento di un aspirapolvere-testo centrato sotto un listino tasto immagine galleggiava.
per me la soluzione stava usando il valore "fissa" per la "posizione" proprietà
position: fixed
allora si può posizionare il messaggio di errore dalla parte superiore sinistra del corpo di nuovo. Io uso un altro div wrapper per posizionare il centro del centro di tutto il testo di Hoover.
trovato la soluzione qui:
CSS nested Div with position absolute?
il codice non è il codice della foto che vedete, l'immagine è solo per l'illustrazione.
foglio di stile in meno formato (vedi http://lesscss.org/)
<style>
.button
{
float: left;
position: relative;
a
{
&:hover, &:focus
{
.titlePos
{
.title
{
display: block;
}
}
}
.titlePos
{
position: fixed;
top:50%;
left:50%;
width: 400px;
margin-left: -200px;
.title
{
position:relative;
display: none;
top: 130px;
text-align: center;
}
}
}
</style>
html:
<div id="wrapper">
<div id="content">
<ul>
<li>
<div class="button">
<a href="#" >
<div class="buttonImage">
<img />
</div>
<div class="titlePos">
<div class="title">Button Hoover Text1</div>
</div>
</a>
</div>
</li>
<li>
<div class="button">
<a href="#" >
<div class="buttonImage">
<img />
</div>
<div class="titlePos">
<div class="title">Button Hoover Text2</div>
</div>
</a>
</div>
</li>
<li>
<div class="button">
<a href="#" >
<div class="buttonImage">
<img />
</div>
<div class="titlePos">
<div class="title">Button Hoover Text3</div>
</div>
</a>
</div>
</li>
<li>
<div class="button">
<a href="#" >
<div class="buttonImage">
<img />
</div>
<div class="titlePos">
<div class="title">Button Hoover Text4</div>
</div>
</a>
</div>
</li>
</ul>
</div>
</div>
non sono sicuro perché si vorrebbe che div di uscire div genitore. Forse provare a lavorare su una nuova struttura html per quelli?
http://haslayout.net/css-tuts/Horizontal-Centering e http://haslayout.net/css-tuts/Vertical-Centering
Questi dovrebbero aiutarti!
Penso che l'unico modo per avere un'interruzione div
di tutti i genitori div
s sia avere un posizionamento assoluto su tutti loro, che ovviamente creerà il proprio insieme di problemi.
Perché non semplicemente avere un predefinito div
nascosto come figlio diretto del corpo, invece di inserirlo nel markup. È quindi possibile posizionarlo facilmente come desiderato e inserire i messaggi di errore al suo interno con l'aiuto di jQuery. Un ovvio vantaggio di questo metodo è che dovresti scrivere solo questo div
una volta e inserire dinamicamente il messaggio di errore. Vorrei anche suggerire di dare un'occhiata a jQuery UI che ti permette di creare facilmente dialoghi, sia normali che modali, oltre a tonnellate di altre funzionalità.
UPDATE
Dal JS non è consentito, un modo semplice per fare questo sarebbe davvero in mostra il div solo se c'è stato un errore. Quindi il codice PHP sarebbe ...
if (isset($error)) {
echo '<div class="show_error">' . $error . '</div>';
}
... e la classe CSS perché sarebbe ...
.show_error {
width: 400px; // error element's width
height: 200px; // error element's height
position: absolute;
top: 50%;
left: 50%;
margin-top: -100px; // minus half the height
margin-left: -200px; // minus half the width
}
Naturalmente, si può ulteriormente lo stile del div errore come si desidera , ma questi sono necessari per posizionarlo nel punto morto.
Spero che questo aiuti!
non javascript consentito: p, ma creerò il contenitore alla fine, visualizzando $ error, e inizierò con $ error = "" e se c'è un errore i ' Compilare solo $ errore – Samuel
Si prega di consultare la mia risposta aggiornata. –
bene questo è quello che ho avuto, ma non "punto morto" è solo centrato rispetto al div avvolto assoluto posizionato attorno ad esso:/grazie per il tuo sforzo però, apprezzalo! – Samuel
Si dovrebbe provare a utilizzare la proprietà di css position:fixed
, invece di position:absolute
, per l'errore div
. position:fixed
posizionerà un elemento in base alla finestra del browser, senza riguardo per dove cade nel DOM. Se si desidera che sia centrato nella finestra, indipendentemente dalle dimensioni della finestra, si può fare in modo che il div di posizione fissa copra l'intero schermo (left: 0
, right: 0
, ecc.). e quindi allineare il testo del messaggio di errore al suo interno.
- 1. Differenza tra word-wrap: break-word e word-break: break-word
- 2. Vim auto line-break
- 3. Word-break: break-word non funziona in Firefox 21
- 4. Elenco ForEach break
- 5. lldb break upon SIGSEGV
- 6. PHP - Break after return?
- 7. Python Reportlab Page Break
- 8. Python: 'break' anello esterno
- 9. Page-break-inside: evitare di non funzionare
- 10. Page break for long table
- 11. Slim Line break and formatting
- 12. Stop vs Break in Parallel.Per
- 13. white-space: layout breakbox di break nowrap
- 14. Break up PHP Link di paginazione
- 15. Break/explode Stringa in smarty
- 16. mysql while loop Break equivalent
- 17. istruzione switch PHPStorm "break" indenting
- 18. Aggiungere trattino prima parola-break
- 19. RxJava Break Chain on Conditional
- 20. php break string in caratteri
- 21. Float: left break container div?
- 22. break termina il programma - C++
- 23. Break X Axis in R
- 24. Android Studio IDE: Break on Exception
- 25. appendChild in un XUL Firefox addon break
- 26. Control + Break equivalente per Mac in VBA
- 27. `break` e` CONTINUE in `forEach` in Kotlin
- 28. Supporto cross-browser di `page-break-inside: avoid;`
- 29. Safari page-break-inside: evitare di non funzionare
- 30. Visual Studio break all in debug
bene, la classe dovrebbe allineare il suo div, ma in anticipo non si sa dove la classe di errore sarà chiamata ergo potrebbe essere chiamata da un piccolo contenitore allineato in basso a destra, quindi se dovessi centrare semplicemente l'errore div sarebbe appare centrato - nel piccolo contenitore in basso a destra ma voglio che sia centrato rispettivamente sull'intera pagina web - indipendente dove lo chiamo quindi indipendente da eventuali involucri/contenitori – Samuel
Huh ... C'è un posto dove potremmo vedere il tuo codice ? È un po 'difficile, almeno per me, immaginare la situazione laggiù e pensare a una soluzione migliore. – jolt
ho circa 20 file, (html/php, no javascript) e sono tutti progettati individualmente e c'è un foglio di stile con classi generali. Se in qualche parte si verifica un errore durante il recupero del contenuto dal database, desidero lanciare un messaggio di errore semplicemente visualizzando
nel punto in cui si verifica l'errore e voglio che il div sia visualizzato sopra tutti gli altri contenuti. non saprei quale codice mostrare qui – Samuel