2013-06-16 6 views
5

Gibt es Pläne, dies zu CSS hinzuzufügen? CSS-Vorschlag Max-Recht oder Workaround?

min-right:10% ; 
max-bottom:100px ; ... 

so etwas wie

<div style="min-left:1000px; min-right:10%; max-left:1200px; 
      position:fixed" ></div> 

Gibt es eine Abhilfe heute bewerben? Möglichen Antworten sind javascript, jquery Plugins etc.

Für einigen Hintergrund:

Unsere festen div im obigen Beispiel bei 1280 Fensterbreite bei 10%/128px von rechts nach links gelesen werden, aber nicht früher beginnen als 1000px von links, also maximal 152 Pixel breit, begrenzt durch die horizontalen Positionen 1000px und 1152px mit gleichem Abstand zu diesen Markierungen, wenn dieses div innerhalb eines anderen mit einer zentrierten Ausrichtung liegt. - Wenn Sie stattdessen <div style=”right:10%;left;1000px; max-width: calc(90%-1000); position:fixed versuchen, wird nicht das gleiche passieren, aber die maximale Breite wird immer erzwungen und unser div wird gezwungen sein, beide zu sein: 1000px von links und 10% von rechts, auch wenn es Inhalt eigentlich nur will weniger Pixelbreite ...

Und zu erklären, warum jetzt auch max-left:1200px nötig ist: Wenn die Fensterbreite größer wird, zum Beispiel 1600px, dann ist natürlich wieder die min. Der Abstand zum rechten Ende der Fenster beträgt 10%/160 Pixel und nach links 1000, also ergibt die maximale Breite des divs 440px, aber was ist, wenn es heute nur 100px hat? Dann wollen wir zusätzlich sicherstellen, dass es irgendwo zwischen 1000 und 1200 von links und nicht nur 10% von rechts beginnt, auch wenn das vererbte Align "centered" oder "right" sein sollte und das div gerade 10px des Inhalts enthält, der nicht resultieren sollte in ihm 1235px von links oder sogar 1430px entfernt sein, aber nicht 1200px.

+2

Können Sie bitte Beispiele angeben, die Sie mit Bildern oder so benötigen? – ShrekOverflow

+0

@Darkyen, Danke, oben bearbeitet. –

+0

Meine vorherige Änderung entfernte die "Schlüsselwörter" aus dem Titel, weil sie keinen Zweck erfüllen (außer, um die Frage zu verschleiern, die du versuchst zu stellen). Wenn Sie Ihre Frage mit Tags versehen müssen, verwenden Sie die Tags sinnvollerweise ([tag: css] und [tag: css3] dienen keinem anderen Zweck, und in Ihrer Frage gibt es nichts, was eine andere erfordert. Ähnlich das [tag: stylesheet] und sein (* near *) duplicate [tag: alternate-stylesheet] hat keinen Zweck; wähle * one * und füge weitere Themen hinzu. Das einzige, was im Titel sein sollte, ist der Frage-Titel selbst, nicht Meta-Informationen. –

Antwort

4
  1. Nicht Verwendung absolute Positionierung außer wenn Ihr Niveau in CSS fortgeschritten ist. Rezept für Katastrophen und Inhalte für andere Inhalte.
    • etwa jetzt brauchbare Werte der Anzeige Lernen wie inline-block und table-cell
    • Erfahren Sie mehr über Schwimmer natürlich und clear Eigenschaft
    • lernen, was ein clearfix ist und die Differenz mit der Eigenschaft clear. Implementation of clearfix
    • clip() kann, auf absolut nur positionierte Elemente verwendet werden, so dass es mit absolute positioning (the bonus tip part)
  2. Erfahren Sie mehr über einen kühlen Trick hier relevant ist.
  3. Erfahren Sie mehr über min-width, max-width, min-height und max-height.
    • min-height ist nützlich, wenn ein Hintergrundbild nicht einmal
    • max-width und min-width nützlich sind für flüssige Layouts ohne genügend Inhalt beschnitten werden soll, ohne die Notwendigkeit von Medienanfragen und Haltepunkten, Breiten in em s anspricht, etc
  4. Hintergrundbilder können nun mit CSS3 gesteuert werden: background-size, etc E. Weil 'standardista' website

Es gibt keine pla sind Siehe ns des Hinzufügens der Eigenschaften, die Sie erwähnten, obwohl es einen calc() Wert gibt, der Ihnen helfen kann. Siehe MDN calc() (und caniuse.com für Kompatibilität ...)

+1

Extrem nützliche Tipps, danke – Philip007

0

Okay! Angenommen, Sie haben eine div-Breite von 400 Pixeln.

+----------------------+ 
|      | <div id="main"> 
+----------------------+ 

Und Sie möchten ein min-links 50px in diesem div eine neue div Breite von 300 Pixel geben.

+----------------------+ 
| +------+   | 
| |  |   | <div id="left"> 
| +------+   | 
+----------------------+ 

Was ist, wenn Sie dieses div max-left 100px wollen. Das würde so gehen.

+----------------------+ 
|  +------+  | 
|  |  |  | <div id="left"> 
|  +------+  | 
+----------------------+ 

Und was, wenn Sie Marge anwenden: 0 auto; zu diesem div. Dies würde den Inhalt wirklich genau so verwalten wie gewünscht, ja/nein: nein. Wenn Sie geben Rand: 0 100px; oder so etwas würde wie managen, ja/nein: ja. So, wie wir es in CSS tun, ist alles in tiefem Denken geschrieben und es ist nicht nötig, min-left oder so etwas wie dich zu geben. Und es gibt viele Tricks, um das zu tun, was Sie wollen.

Verwandte Themen