Ho un collegamento ad un ancoraggio sulla mia pagina html. Quando si fa clic sul collegamento, la pagina scorre fino all'ancora in modo che l'ancoraggio si trovi nella parte superiore della parte visibile della pagina. Come posso far scorrere la pagina in modo che l'ancoraggio si trovi nel mezzo della pagina?HTML: Fare un collegamento porta all'ancora centrata nel mezzo della pagina
risposta
Non esiste un modo semplice per farlo in puro html \ css. È possibile usando js, ottenendo la posizione superiore dell'elemento e impostando la posizione superiore della pagina sulla posizione di quell'elemento meno la metà dell'altezza della pagina.
Determina quale parte della tua pagina desideri effettivamente in alto e posiziona l'ancora lì. Non sarai in grado di cambiare il modo in cui i browser interpretano le ancore - almeno non senza sconvolgere gli utenti.
Vorrei provare a mettere un margine negativo (o altro metodo di posizionamento) uguale alla metà dell'altezza della pagina sul tag di ancoraggio di destinazione.
Poiché "il centro della pagina" è relativo alla dimensione della schermata e della finestra dell'utente in un dato momento, è necessario utilizzare Javascript per ottenere ciò, poiché non vi è alcun modo in puro HTML/CSS per ottenere la larghezza dello schermo verticale.
larghezza dello schermo verticale, altezza dello schermo a.k.a. – LarsH
Firefox supporta l'impostazione di una proprietà padding-top sull'ancora denominata. Da lì, puoi impostare un cookie tramite javascript che contiene le dimensioni del browser e regolare il padding-top di conseguenza sul lato server. Per l'utente finale, sembrerebbe il suo puro html/css, ma noam è corretto in quanto è necessario un pochino di JS per ottenere le dimensioni del browser, dal momento che non ti dà questa informazione senza un po 'di coercizione.
ho trovato una soluzione Anchor Links With A Fixed Header pubblicato da Phillip, è un web designer. Phillip ha aggiunto un nuovo intervallo EMPTY come posizione di ancoraggio.
<span class="anchor" id="section1"></span>
<div class="section"></div>
quindi inserire il seguente codice css
.anchor{
display: block;
height: 115px; /*same height as header*/
margin-top: -115px; /*same height as header*/
visibility: hidden;
}
Grazie, Filippo!
se si vuole, senza spazio vuoto fare in questo modo:
<h2 id="jump_tag" style="padding-top: 500pt; margin-top: -500pt;"></h2>
ma, avrai ancora di regolare l'altezza da JavaScript
il suo grazie di lavoro – Inderjeet
La mia soluzione è: luogo uno stile <span class="anchor" id="X">
poi la classe "anchor" come:
.anchor {
position:absolute;
transform:translateY(-50vh);
}
grazie al "-50vh" scorre l'ancora nel mezzo dello schermo.
controllare https://www.w3schools.com/cssref/css_units.asp per ulteriori informazioni.
- 1. Visualizza Ajax UpdateProgress nel mezzo della pagina
- 2. Creare un collegamento HTML a un file in un'altra porta?
- 3. Desidera posizionare l'immagine di sfondo nel mezzo
- 4. center a div box nel mezzo della pagina utilizzando css
- 5. bufferedwriter si arresta nel mezzo della scrittura
- 6. Collegamento porta Python
- 7. Collegamento a un elemento all'interno della pagina corrente
- 8. Parametro facoltativo nel mezzo di un percorso
- 9. Test Rspec per entità html nel contenuto della pagina
- 10. Fare clic programmaticamente su un collegamento utilizzando jQuery al caricamento della pagina
- 11. Fare clic su un collegamento HTML all'interno di un controllo WebBrowser
- 12. inserire un collegamento HTML all'applicazione R Shiny
- 13. Come inserire un collegamento ipertestuale nel mezzo di un paragrafo usando il linguaggio dei modelli slim?
- 14. Inserire i controlli dinamici nel mezzo della collezione di controlli
- 15. Cursore nel mezzo di una casella textarea?
- 16. Chrome anteprima di stampa taglio testo fuori nel mezzo se raggiunge il margine inferiore della pagina
- 17. collegamento utente socket aggiunto su ogni pagina HTML aggiornata?
- 18. Quali sono i modi per fare in modo che un collegamento html apra una cartella
- 19. Rallentare un collegamento di ancoraggio html
- 20. Symfony2/dottrina mappato superclasse nel mezzo della tabella di ereditarietà
- 21. Regex, trova il modello solo nel mezzo della stringa
- 22. Attuazione della IsPostBack nel caricamento della pagina
- 23. Margine durante la stampa della pagina HTML
- 24. Come richiamare MessageBox.Show() nel mezzo della mia applicazione WPF?
- 25. Come stampare le variabili R nel mezzo della stringa
- 26. Scorrimento indipendente della colonna nella pagina HTML
- 27. Collegamento HTML a pagine specifiche in PDF
- 28. Prevenire di fare clic sul collegamento durante il caricamento della pagina
- 29. Modificare il formato della carta nel mezzo di un documento in lattice?
- 30. Come chiudere una pagina Web con un clic del pulsante, un collegamento ipertestuale o un pulsante di collegamento fare clic?
A seconda della larghezza della finestra del browser e del modo in cui la pagina scorre, questo metodo potrebbe causare l'ancoraggio effettivo al di sotto del viewport.Vorrei andare con la soluzione javascript, riconoscendo che i browser senza javascript dovranno solo occuparsi senza la funzione di fantasia. –