Chciałbym zrobić position: fixed;
wyskakujące okienko wyśrodkowane na ekranie o dynamicznej szerokości i wysokości. Użyłem margin: 5% auto;
do tego. Bez position: fixed;
niego wyśrodkuje się poziomo, ale nie pionowo. Po dodaniu position: fixed;
nawet nie wyśrodkowuje się w poziomie.
Oto kompletny zestaw:
.jqbox_innerhtml {
position: fixed;
width: 500px;
height: 200px;
margin: 5% auto;
padding: 10px;
border: 5px solid #ccc;
background-color: #fff;
}
<div class="jqbox_innerhtml">
This should be inside a horizontally
and vertically centered box.
</div>
Jak wyśrodkować to pole na ekranie za pomocą CSS?
źródło
Oto nowoczesne podejście do poziomego centrowania elementu o dynamicznej szerokości - działa we wszystkich nowoczesnych przeglądarkach; wsparcie można zobaczyć tutaj .
Zaktualizowany przykład
Do wyśrodkowania zarówno w pionie, jak i w poziomie można użyć:
Zaktualizowany przykład
Możesz także dodać więcej właściwości z prefiksem dostawcy (patrz przykłady).
źródło
Lub po prostu dodaj
left: 0
iright: 0
do oryginalnego CSS, który sprawia, że zachowuje się podobnie do zwykłego nieokreślonego elementu i działa zwykła technika automatycznego marginesu:Uwaga: musisz użyć poprawnego (X) HTML
DOCTYPE
, aby działał poprawnie w IE (co oczywiście powinieneś mieć ...!)źródło
right
właściwości, jeślileft
jest również ustawiona! ( msdn.microsoft.com/en-us/library/… zauważa, żeleft
iright
ma tylko „częściową” obsługę w IE7). OK, przyznaję, że to rozwiązanie nie jest dobre, jeśli wsparcie IE7 jest ważne, ale świetna sztuczka do zapamiętania na przyszłość :)Dodaj pojemnik, taki jak:
Następnie włóż pudełko do tego div wykona pracę.
źródło
display: inline-block
to działało, musi być wewnętrzne pudełko . (Niektóre inne wartości wyświetlania mogą również działać, takie jaktable
.)margin:auto;
i zmiana szerokości dowidth:50%
lubwidth:400px
. wówczas zawartość może być prostym tekstem, elementami blokowymi lub elementami wbudowanymi.Poprostu dodaj:
źródło
position: fixed
, o to właśnie chodzi. Jeśli się mylę, edytuj swoją odpowiedź, tak aby zawierała fragment kodu, który można uruchomić.position: fixed
, pod warunkiem ustawienia elementumax-width
lubwidth
elementu.wewnątrz może znajdować się dowolny element o szerokości, wysokości lub bez diffenet. wszystkie są wyśrodkowane.
źródło
To rozwiązanie nie wymaga od ciebie określenia szerokości i wysokości wyskakującego okienka div.
http://jsfiddle.net/4Ly4B/33/
I zamiast obliczać rozmiar wyskakującego okienka i minus pół do góry, javascript zmienia rozmiar wyskakującego okienka, aby wypełnić cały ekran ...
(100% wysokości, nie działa przy użyciu display: komórka tabeli; (który jest wymagany do wyśrodkowania czegoś w pionie)) ...
W każdym razie to działa :)
źródło
Nie działał pod IE7.
Zmienić na
Zaczęło działać, ale w pozostałych przeglądarkach przestało działać! Tak użyłem tej metody dla IE7 poniżej
źródło
Możesz po prostu owinąć go w inny
div
i ustawićposition
nafixed
.źródło
Użyłem
vw
(szerokość rzutni) ivh
(wysokość rzutni). rzutnia to cały ekran.100vw
to całkowita szerokość ekranów i100vh
całkowita wysokość.źródło
Aby naprawić pozycję, użyj tego:
źródło
Jedna możliwa odpowiedź :
źródło
Spróbuj użyć tego do elementów poziomych, które nie będą poprawnie wyśrodkowane.
width: calc (width: 100% - width cokolwiek innego jest poza centrowaniem )
Na przykład jeśli boczny pasek nawigacji ma wielkość 200 pikseli:
źródło
Po prostu używam czegoś takiego:
Dla mnie wyśrodkowuje okno dialogowe zarówno w poziomie, jak i w pionie, i mogę użyć innej szerokości i wysokości, aby dopasować różne rozdzielczości ekranu, aby był responsywny, z zapytaniami o media.
Nie jest to opcja, jeśli nadal potrzebujesz obsługi przeglądarek, w których niestandardowe właściwości CSS lub
calc()
nie są obsługiwane (sprawdź caniuse).źródło
Ten działał dla mnie najlepiej:
źródło
Jedynym niezawodnym rozwiązaniem jest użycie table align = center jak w:
Nie mogę uwierzyć, że ludzie na całym świecie marnują tak dużo na głupi czas na rozwiązanie tak fundamentalnego problemu, jak centrowanie div. Rozwiązanie css nie działa we wszystkich przeglądarkach, jquery jest oprogramowaniem obliczeniowym i nie jest opcją z innych powodów.
Wielokrotnie traciłem zbyt wiele czasu, aby uniknąć korzystania ze stołu, ale doświadczenie mówi mi, żebym przestał z nim walczyć. Użyj tabeli do centrowania div. Działa cały czas we wszystkich przeglądarkach! Nigdy więcej się nie martw.
źródło
position:fixed
.