2010-11-28 14 views
1

Ich habe ein div in einem td-Element mit Überlauf: versteckt darauf (die td). Ich möchte, dass das innere div im Dokumentenfluss positioniert und dann von ihm gelöst wird, damit es ein wenig überlaufen kann. Wie erreiche ich das mit CSS?Lösen eines Elements aus dem Dokumentenfluss nach der Positionierung

Die HTML:

<table> 
    <tr> 
    <td id="projectDetails"> 
    <div class="edit"> 
     <a href="">Edit</a> 
    </div> 
    <span id="projectName">Project Name</span><br /> 
    Category 1, Category 2<br /> 
    <hr /> 
    <span class="descriptor">Event Date</span>: 22/12/10 12:30<br /> 
    <span class="descriptor">Event Location</span>: Technion, Haifa<br /> 
    <span class="descriptor">Supervisor</span>: <a href="">Yosi</a> 
    </td> 
    <td id="projectDescription"> 
    <div class="edit"> 
     <a href="">Edit</a> 
    </div> 
    <span class="descriptor">Description</span>: 
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et 
    dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo 
    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. 
    Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 
    </td> 
    </tr> 
    </table> 

Die CSS:

table{ 
table-layout: fixed; 
border-bottom: 1px solid; 
width: 1008px; 

} 
td{ 
border-width: 0px solid; 
vertical-align: top; 
padding: 5px 5px 5px 5px; 
} 

#projectName{ 
font-size: 22px; 
color: #892345; 
} 
td#projectDetails{ 
width: 350px; 
border-right: 1px solid; 
overflow: hidden; 
} 

Grundsätzlich möchte ich die "Bearbeiten" div am rechten oberen Rand der beiden TDs positioniert zu sein, aber in den Projektdetails td nicht durch sein Überlauf eingeschränkt sein: verstecktes Attribut.

+0

bitte den Code eingeben. –

Antwort

1

Sie können die td aus dem Dokumentfluss entfernen, indem Sie das Attribut position css verwenden. Dadurch können Sie das div herum bewegen.

#projectDescription { 
    display: block; 
    position: relative; 
    top: 50px; 
    left: 50px; 
} 

example

aber ich bin mir nicht sicher, ob dies der beste Weg, um darüber zu gehen.

Ein besserer Weg zu gehen ist, die table Graben und tun das Layout mit nur divs und CSS, die Ihren Code vereinfachen würde, machen es lesbarer, weniger verwirrend, und trennen Layout von Inhalten. Ich kann ein vereinfachtes Beispiel veröffentlichen, wenn Sie möchten.

+0

Ich muss irgendwie eine Tabelle für diesen spezifischen Abschnitt verwenden, weil ich das Layout brauche, um sowohl vertikal als auch horizontal zu strecken, und aus Zeitgründen kann ich nicht lernen, wie man das mit Javascript macht. Außerdem möchte ich das div trennen, nicht das td. Ich möchte im Grunde, dass das div am oberen rechten Rand des projectsDetails td positioniert ist, aber nicht durch das Überlaufattribut des tds: hidden-Attribut (der Rest des Inhalts des td muss jedoch davon eingeschränkt werden). – EpsilonVector

+0

In diesem Fall können Sie mit der obigen css die td aus dem normalen Dokumentenfluss entfernen. Sie können auch 'position: absolute' versuchen. –

+0

Position: Absolut ist eine Möglichkeit, es zu tun, aber es ist nicht sehr elegant. Ich werde es als letzten Ausweg verwenden, aber ich wollte sehen, ob es eine Möglichkeit gibt, die Positionierung selbst in einer weniger unzusammenhängenden Art zu gestalten. – EpsilonVector

Verwandte Themen