Względnie pozycjonować element bez zajmowania przez niego miejsca w obiegu dokumentów

Jak mogę względnie pozycjonować element, aby nie zajmował on miejsca w obiegu dokumentów?

Author: Web_Designer, 2011-05-18

6 answers

To, co próbujesz zrobić, brzmi jak absolutne pozycjonowanie. Z drugiej strony, można jednak utworzyć element pseudo-relatywny, tworząc element o zerowej szerokości, zerowej wysokości, względnie umieszczony, zasadniczo wyłącznie w celu utworzenia punktu odniesienia dla pozycji i elementu absolutnie położonego wewnątrz tego:

<div style="position: relative; width: 0; height: 0">
    <div style="position: absolute; left: 100px; top: 100px">
        Hi there, I'm 100px offset from where I ought to be, from the top and left.
    </div>
</div>
 228
Author: Nightfirecat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-18 05:30:02

Dodaj margines równy przesuniętym pikselom:

Przykład

.box {
    position: relative;
    top: -30px; 
    margin-bottom: -30px;
}
 68
Author: Fred K,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-11 16:18:04

Z lektury wynika, że można bezwzględnie pozycjonować element tak długo, jak element nadrzędny jest względnie pozycjonowany. Oznacza to, że jeśli masz CSS:

.parent { 
    position: relative; 
}
.parent > .child {
    position: absolute;
}

Wtedy element potomny nie zajmie żadnego miejsca w obiegu dokumentu. Następnie można go ustawić za pomocą jednej z właściwości "left"," bottom", itd. Położenie względne na rodzicu zwykle nie powinno mieć na to wpływu, ponieważ będzie domyślnie ustawione w pierwotnej pozycji, jeśli nie podasz "lewy"," dolny " itp.

Http://css-tricks.com/absolute-positioning-inside-relative-positioning/

 15
Author: jeteon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-17 13:56:57

Po prostu usuwasz ten element z przepływu dokumentu, ustawiając position: absolute, i zostawiasz jego punkt przerwania poruszając się swobodnie z dynamicznym przepływem treści przez , a nie określając właściwości stylu left top right i bottom, które będą zmuszać go do dynamicznego używania względnego punktu końcowego przepływu. W ten sposób absolutnie pozycjonowany element będzie podążał za przepływem dokumentu, usuwając się z zajmowania przestrzeni.

Nie są potrzebne żadne manekiny.

 2
Author: Bekim Bacaj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-03 18:02:52

Dla mnie podane rozwiązania nie działały dobrze. I want to see a h3, than text and after that Bootstrap-panels, vertical-synchronous to this panels I want to see other panels on the right side,

Udało mi się to z wysokością: 0, a po tej pozycji: relative;left: 100%.

<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container">

    <div class="row">
        <div class="col-md-9">
            <div class="col-md-12">
                <h3> hello </h3>
            </div>
            <div class="col-md-12">
                <span> whats up? </span>
            </div>
            <div style="height:0" class="col-md-12">
                <div style="left:100%" class="col-md-3">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            <h3 class="panel-title">Panel title</h3>
                        </div>
                        <div class="panel-body">
                            <p>Panel Body</p>
                        </div>
                    </div>
                </div>
            </div>

            <div class="col-md-12">
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h3 class="panel-title">Panel title</h3>
                    </div>
                    <div class="panel-body">
                        <p>Panel Body</p>
                    </div>
                </div>
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h3 class="panel-title">Panel2 title</h3>
                    </div>
                    <div class="panel-body">
                        <p>Panel Body</p>
                    </div>
                </div>
            </div>

        </div>
        <div class="col-md-3">
            <!--placeholder-->
        </div>

    </div>
</div>
 0
Author: Reiner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-10 13:24:32

@Bekim Bacaj miał dla mnie idealną odpowiedź, chociaż może nie jest to dokładnie to, czego szukał OP (choć jego pytanie pozostawia miejsce na interpretację). To powiedziawszy, Bekim nie dał przykładu.

<h1>Beneath this...</h1>
<style>
    .HoverRight {
        background: yellow;
        position: absolute;
        right: 0;
    }
</style>
<div class="HoverRight">Stuff and Things!</div>
<p>but, top = same as this paragraph.</p>

Powyższy przykład ustawia element, który..

  • używa czystego i prostego CSS i nic więcej
  • jest ustawiona pionowo tak, jakby znajdowała się w przepływie (domyślne ustawienie top)
  • znajduje się poziomo przy prawej krawędzi strony (right: 0)
  • nie zajmuje miejsca, ale będzie poruszać się naturalnie w miarę przewijania strony(position: absolute)
 0
Author: John T.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-22 17:48:50