CSS, strona się rozjeżdża

CSS, strona się rozjeżdża
RO
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:7
0

Mam stronę ( http://bit.up.krakow.pl/~kbabel/WP ) podzieloną na 3 divy - logiczne kawałki ('header' w header.php, 'content' w index.php i 'footer' w footer.php).

Teraz: div 'content' zawiera w sobie div - pudełko 'contentbox' - w którym ma w przyszłości wisieć jakaś treść (tekst i w jednym przypadku jakaś galeria).

Problem jest taki, że gdy do owego 'contentbox' wrzucam jakiś el blokowy (np

albo

) między głównymi sekcjami 'header' i 'content' powstaje rozstęp na ok 30 px.

Po drugie, zauważyłem też, że dodając

w header i zmieniając rozmiary tej czcionki na odpowiednio wielki, ma miejsce ten sam efekt odsuwania się - tyle że w tym przypadku cała strona odsuwa sie od górnej krawędzi okna przeglądarki - mimo że tekst pozostaje obrębie swojego diva.

Moja prośba jest taka, czy ktoś znający się na CSS może rzucić okiem na ten kod i powiedzieć mi, gdzie tkwi przyczyna tego problemu i jak mogę go ominąć/naprawić? Myślałem już o nadaniu elementom wewnątrz właściwości display:inline; (działa), ale to takie po macoszemu mi się wydaje...

Tutaj zamieszczam kod strony i css:

kod header:

Kopiuj
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<!-- POCZĄTEK HEAD -->
    <head>
    
        <title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
        <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
        <meta name="description" content="<?php bloginfo('description') ?>" />
        <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />

        <?php wp_head(); ?>

    </head>
<!-- KONIEC HEAD -->
    <body>
    
        <div id="header">
            <div id="headerbox">
                <!-- tytuł galerii -->        
                <p id="sitename"><?php bloginfo('name'); ?></p>
                
                <!-- wyszukiwarka -->
        
            </div>    
        </div>    
            
        


kod index:

Kopiuj
<?php get_header(); ?>

<!-- KONIEC HEADER -->
<!-- POCZĄTEK TREŚCI GŁÓWNEJ -->




        <div id="content">

            <div id="contentbox">
                <!-- contentbox: treść bieżącej strony -->

                <h1>znacznik h1</h1>
            
                <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
                <h2><a href="<?php the_permalink(); ?>"></a></h2>
                <?php endwhile; else: ?>
                <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
                <?php endif; ?>

            </div>
    
            <div id="contentdescbox">
                    <!-- contentdesc: opis bieżącej strony -->
                    
                <div id="contentdesc">    
                    <p><?php bloginfo('description'); ?></p>
                </div>
                
            </div>
    
        </div>


<!-- KONIEC TREŚCI GŁÓWNEJ -->
<!-- POCZĄTEK FOOTER -->



<?php get_footer(); ?>


kod footer:

Kopiuj
        <div id="footer">
            <div id="footerbox">

                    <ul>
                        <?php wp_list_pages('title_li='); ?>
                    </ul>
                    
            </div>
            
            
            <div id="footerborder">

                <!-- grafika wyznaczająca koniec strony -->
            
            </div>    

            
            <div id="footerend">

                <!-- dodatkowe informacje -->
                <p>Powered by WordPress version <?php bloginfo('version'); ?></p>
                    
            </div>            
            
            
            
        </div>
        
        <?php wp_footer(); ?>
    
    </body>
</html>

kod CSS:

Kopiuj

body
{
background-color:#414141;
font-family: Verdana, Arial, Helvetica, sans-serif;
}


#header
{
background-color:#efecdd;
height:100px;
margin-top:30px;
}

    #headerbox
    {
    width:1000px;
    height:100px;
    margin-left:auto;
    margin-right:auto;
    }

        #sitename
        {
        margin-left:20px;
        position:relative; top: 20px;
        font-family: Gill Sans MT, sans-serif;
        font-size:30px;
        font-weight:bold;
        font-style:italic;
        color:#efecdd;
        text-shadow: 0.1em 0.1em 0.2em #414141;

        }
    
#content
{
background-color:#792a2a;
height:400px;
box-shadow: inset 0px 6px 5px -2px #222222,
            inset 0px -6px 5px -2px #222222;

}

    #contentbox
    {
    background-color:#efecdd;
    width:1000px;
    height:300px;
    position:relative; top:30px;
    margin-left:auto;
    margin-right:auto;
    
    border-top-left-radius:1px;
    border-top-right-radius:10px;
    border-bottom-left-radius:10px;
    border-bottom-right-radius:1px;
    
    box-shadow: 0 0 8px 4px  #222222;
    }
    
    #contentdescbox
    {
    width:1000px;
    height:50px;
    position:relative; top:40px;
    margin-left:auto;
    margin-right:auto;
    }
    
        #contentdesc
        {
        text-align:center;
        color:#efecdd;
        }


#footer
{
background-color:#efecdd;
height:120px;
position:relative; bottom:15px;

}

    #footerbox
    {
    width:1000px;
    height:120px;
    margin-left:auto;
    margin-right:auto;
    }
    
        #footerbox ul
        {
        display:block;
        list-style:none;
        position:relative; top:20px; right:10px;
        }

        #footerbox li
        {
        display:block;
        float:right;
        width:170px;
        height:40px;
        margin-left:10px;
        background-image:url('img/button.png');
        }


            #footerbox li:hover
            {
            -webkit-transform: rotate(8deg);
            -moz-transform: rotate(8deg);    
            -o-transform:rotate(8deg);
            -ms-transform:rotate(8deg);
            }

        #footerbox a:link, a:visited
        {
        display:block;
        width:170px;
        height:40px;
        line-height:40px;
        outline-style:none;
        outline-width:0;        
        text-decoration:none;
        font-size:14px;
        font-weight:bold;
        color:#efecdd;
        text-align:center;
        }
        
            #footerbox a:hover
            {
            -webkit-transform: rotate(5deg);
            -moz-transform: rotate(5deg);    
            -o-transform:rotate(5deg);
            -ms-transform:rotate(5deg);
            }
            
            
    #footerborder
    {
    height:30px;
    background-image:url('img/footerborder.png');
    }
            
    #footerend
    {
    width:1000px;
    margin-left:auto;
    margin-right:auto;
    }
    
        #footerend p
        {
        font-size:9px;
        margin-left:10px;
        color:white;
        text-align:center;
        margin-top:50px;
        text-shadow: 0.1em 0.1em 0.2em white;
        }

            #footerend p:hover
            {
            text-shadow: 0.3em 0.3em 0.4em white;
            }
  

dzek69
jeszcze nigdy nie widziałem robienia takich wcięć w CSS :O
0

W #contentbox usuwasz:

Kopiuj
position: relative;
top: 30px;

wstawiasz:

Kopiuj
margin-top: 30px;

I nic nie jeździ ani się nie suwa.

0

To samo proponuję chyba na wszystkie elementy które to mają bo widzę, że nie do końca wiesz do czego używa się position:relative, do Twoich zadań wystarczy margin-top / bottom / left / right. I tego używaj.

Pozdrawiam.

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:5 dni
  • Lokalizacja:Rzeszów
0

Zasada jest prosta - jeżeli nie wiesz jak coś zrobić - nie używaj właściwości position, top, left, right, bottom ;)


RO
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:7
0

Dziękuję za szybką odpowiedź.

emfałsi - używałem position:relative, bo margin-top dawało jeszcze gorsze efekty ; | Zrobiłem tak, jak napisałeś i strona sypie się jeszcze mocniej:

w #contentbox, po zmianie

Kopiuj
position:relative; top:30px

na margin-top: 30px;

Kopiuj
, #contentbox wędruje do samej górnej krawędzi #content, zaś sam #content odsuwa się od #header jeszcze bardziej.

w #footer, po zmianie 
```css
position:relative; bottom:15px;

na margin-top:15px;

Kopiuj
, #footer odsuwa się od #content. Taki sam efekt jest, gdy wywalę obie te regułki z CSS.

Natomiast w #footerbox ul, margin nie daje mi żadnych efektów, więc używam position:relative zamiast niego.

Dzek - a dopuściłeś do siebie szokującą możliwość, że używam tych rzeczy właśnie dlatego, że nie wiem jak coś zrobić ; ) ?
edytowany 2x, ostatnio: rolo
dzek69
Tak, używasz position, bo nie wiesz jak coś zrobić - wiem - dlatego Ci mówię, że jest zasada, że jak NIE WIESZ co robić, to NIE używasz właśnie position. Nie łapiesz prostego zdania? ;)
RO
Chyba że tak. Ale to wciąż nie rozwiązuje mojego problemu. Jakieś sugestie, jak się z tym uporać :)?
RO
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 12 lat
  • Postów:7
0

Odkryłem już co się chrzaniło, miałem do czynienia z zapadaniem marginesów i stąd cały ten kłopot. Po tym odkryciu i jego naprawieniu wszystko gra :D

Temat do zamknięcia.

0

Jak przy tak banalnym i małym projekcie potrzebujesz używać position:relative; to aż się boje o to jak by wyglądała Twoja strona w bardziej zaawansowanej formie.

RO
Już nie potrzebuję : )
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)