zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Bilder/Videos bewegen lassen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #21 (permalink)  
Alt 06.01.2014, 00:27
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat: Der Unterschied bei der Semantik ist, dass ein Blockelement weitere (Block)Elemente enthalten kann, ein Inlineelement kann/darf keine Blockelemente enthalten.

Ob das Semantik oder doch nur Syntax ist, darüber könnte man wohl diskutieren.
Und display:inline-block? Laut HTML-Standard ist etwas, wie
Code:
 <SPAN> text <DIV style="display : inline-block; border : 1px solid black">eingerahmter Text</DIV></SPAN>
also nicht erlaubt, aber
Code:
<DIV style="display : inline; "> text <DIV style="display : inline-block; border : 1px solid black">eingerahmter Text</DIV></DIV>
schon. An dieser Stelle finde ich HTML nicht sehr konsistent. Gut, als man entschieden hat, dass Inline-Elemente keine Block-Elemente enthalten können, hat man wahrscheinlich nicht daran gedacht, dass es mal etwas, wie inline-block geben wird...

Zitat:
Zitat: Zitat von MitjaStachowiak
Ja, dass float nicht bei inline-Elementen funktioniert ist klar. Deswegen würde ich das erst gar nicht auf inline-Elemente anwenden, sondern lieber ein DIV drum herum machen.

Das ist eben falsch. Doch, float funktioniert bei Inline-Elementen. Sie werden dann nur nicht mehr inline dargestellt.
Sicher. Aber wenn man von der Bedeutung der Elemente mal absieht, könnte man mit genügend CSS jede HTML 4 basierte Seite allein aus DIVs, IFrames, dem Title und ein paar Input-Geschichten aufbauen. Alles andere, von Listen bis Tabellen, kann man irgendwie umbauen, bis es faktisch exakt das gleiche ist.

Zumindest die Rendering-Engine des Browsers beachtet, so habe ich den Eindruck, das eigentliche HTML-Tag höchstens noch, um zu entscheiden, welche standard-css-Einstellungen für das Element gesetzt werden sollen.

Da man inzwischen auch den Text in css auslagern kann, ist es technisch also durchaus denkbar, eine Seite zu schreiben, in der die HTML-Elemente nur noch die Verkapselung beschreiben. Sinnvoll ist das natürlich nicht.
Mit Zitat antworten
Sponsored Links
  #22 (permalink)  
Alt 06.01.2014, 06:57
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
Und display:inline-block? Laut HTML-Standard ist etwas, wie
Code:
 <SPAN> text <DIV style="display : inline-block; border : 1px solid black">eingerahmter Text</DIV></SPAN>
also nicht erlaubt, aber
Code:
<DIV style="display : inline; "> text <DIV style="display : inline-block; border : 1px solid black">eingerahmter Text</DIV></DIV>
schon. An dieser Stelle finde ich HTML nicht sehr konsistent.
Wieso?
Ich denke du vermischt gedanklich hier mehrere Dinge.

Einmal gibt es eine Syntax, daraus entsteht die Validität. Diese bestimmt welche Elemente, wann erlaubt sind.

Völlig unabhängig davon, sollten HTML Elemente semantisch verwendet werden, also anhand ihrer Bedeutung. Das ist aber nur eine "Gebrauchsanleitung" und ob du das machst oder nicht, ist im Prinzip deine Entscheidung. Aber wenn es um Semantik geht, ist dein zweites Beispiel fragwürdig, da zwei ineinander verschachtelte bedeutungslose Elemente keinen Sinn ergeben.

Trotzdem wirst du so ein Konstrukt öfters finden, wegen dem dritten Aspekt: die Gestaltung. Diese ist völlig unabhängig von Semantik und Validität. Und daher kannst du das CSS theoretisch wie in deinem zweitem Beispiel benutzen, solange es nicht der Syntax von CSS widerspricht, hast du hier freie Hand.

Im Prinzip musst du einfach versuchen, gedanklich das HTML von der Gestaltung zu trennen. Ein HTML Blockelement muss nicht (durch CSS) als Blockelement gestaltet sein

Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
Sicher. Aber wenn man von der Bedeutung der Elemente mal absieht, könnte man mit genügend CSS jede HTML 4 basierte Seite allein aus DIVs, IFrames, dem Title und ein paar Input-Geschichten aufbauen. Alles andere, von Listen bis Tabellen, kann man irgendwie umbauen, bis es faktisch exakt das gleiche ist.
Exakt. Aber du sagst es selber "wenn man von der Bedeutung absieht"

Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
Zumindest die Rendering-Engine des Browsers beachtet, so habe ich den Eindruck, das eigentliche HTML-Tag höchstens noch, um zu entscheiden, welche standard-css-Einstellungen für das Element gesetzt werden sollen.
Ja genau, die Darstellung regelt einzig und allein das CSS. Und das HTML ist dazu da, deinen Inhalt nach seiner Bedeutung zu beschreiben. Du kannst darauf verzichten, nimmst dann aber in kauf, dass dein Dokument ohne die Gestaltung durch das CSS kaum lesbar ist und automatisiert z.b. durch Suchmaschinen wird der Inhalt nicht mehr so gut auswertbar sein.
Mit Zitat antworten
Sponsored Links
  #23 (permalink)  
Alt 06.01.2014, 10:04
Benutzerbild von Manfred62
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 18.09.2009
Ort: Ludwigsburg
Beiträge: 2.134
Manfred62 ist einfach richtig nettManfred62 ist einfach richtig nettManfred62 ist einfach richtig nettManfred62 ist einfach richtig nettManfred62 ist einfach richtig nett
Standard

Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
An dieser Stelle finde ich HTML nicht sehr konsistent. Gut, als man entschieden hat, dass Inline-Elemente keine Block-Elemente enthalten können, hat man wahrscheinlich nicht daran gedacht, dass es mal etwas, wie inline-block geben wird...
hmm, das versucht man dir dauernd zu erklären: Elemente sind HTML (Semantik, Aussage, Bedeutung), inline-block ist CSS (Styling, Optik).
Mit Zitat antworten
  #24 (permalink)  
Alt 06.01.2014, 12:25
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard

Der Unterschied ist mir schon klar. Ich wollte ja nur anmerken, dass ich es semantisch sinnvoller finde, HTML-Block-Elemente auch als solche zu verwenden. Ich meine, wenn jemand den Code liest und DIV sieht, rechnet er wohl nicht damit, dass irgend ein Stylesheet daraus ein als inline angezeigtes Element gemacht hat...

Aber ich glaube, das ist jetzt irgendwie off-topic.
Mit Zitat antworten
  #25 (permalink)  
Alt 06.01.2014, 14:24
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 28.01.2005
Beiträge: 11.775
fricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz sein
Standard

Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
Der Unterschied ist mir schon klar.
Es macht überhaupt nicht den Eindruck, dass dir etwas klar ist.

Zitat:
Ich wollte ja nur anmerken, dass ich es semantisch sinnvoller finde, HTML-Block-Elemente auch als solche zu verwenden.
Du hast es noch immer nicht begriffen. Du kannst ein Blockelement gar nicht als etwas anderes verwenden. Ein Blockelement bleibt immer ein Blockelement in HTML.

Zitat:
Ich meine, wenn jemand den Code liest und DIV sieht, rechnet er wohl nicht damit, dass irgend ein Stylesheet daraus ein als inline angezeigtes Element gemacht hat.
Das ist Quatsch. Es ist völlig normal, die Default-Darstellung von Elementen so ändern, wie man es fürs Layout haben möchte. Genau dafür ist CSS da.
Mit Semantik hat das überhaupt gar nichts zu tun.
Mit Zitat antworten
  #26 (permalink)  
Alt 06.01.2014, 15:15
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard

Doch, ich habe es verstanden.

Wenn man schreibt <DIV style="display : inline; "> dann ist und bleibt das ganze ein DIV und DIV ist ein Blockelement, aber mit display:inline verwendet man es eben nicht als solches. Und genau das kann verwirren, finde ich.

Es ging ja ursprünglich nur darum, dass BaTam mit der float-Eigenschaft diverse Elemente als Blockelemente dargestellt hat, um diese in einer Reihe aufzulisten. Und so man die Möglichkeit hat, auch den HTML-Content zu ändern, würde ich lieber einheitliche DIV-Elemente benutzen, die in einer Reihe aufgelistet sind, und die dann alles andere enthalten.

Wenn man sich mal anschaut, wie verschwenderisch automatisch generierter Code HTML-Elemente einsetzt, um irgendetwas zu kapseln, ist es doch moderat, für die Positionierung hier eine Reihe aus DIVs zu verwenden. Dann weiß man: Die DIVs sind für die Position da und die anderen Elemente haben erst mal ihre normalen Eigenschaften. Denn wenn BaTam jetzt ein JavaScript schreibt, dann kann er mit den DIVs unkompliziert eine allgemeine Struktur erzeugen und das Script später für andere SlideNavs wiederverwenden, auch, wenn diese wieder ganz neue Elemente beinhalten...
Mit Zitat antworten
  #27 (permalink)  
Alt 06.01.2014, 15:57
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 28.01.2005
Beiträge: 11.775
fricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz sein
Standard

Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
Wenn man schreibt <DIV style="display : inline; "> dann ist und bleibt das ganze ein DIV und DIV ist ein Blockelement, aber mit display:inline verwendet man es eben nicht als solches.
Das ist falsch. Man kann ein Blockelement nicht als inline-Element verwenden. Man kann es nur so darstellen.
Das ist der riesige Unterschied, den man hier schon seitenweise versucht, dir klarzumachen!

Zitat:
Es ging ja ursprünglich nur darum, dass BaTam mit der float-Eigenschaft diverse Elemente als Blockelemente dargestellt hat, um diese in einer Reihe aufzulisten. Und so man die Möglichkeit hat, auch den HTML-Content zu ändern, würde ich lieber einheitliche DIV-Elemente benutzen, die in einer Reihe aufgelistet sind, und die dann alles andere enthalten.
Wenn es darum geht, etwas aufzulisten, dann verwendet man eine Liste! Wie diese Liste dann dargestellt wird legt man im CSS fest.

Das Markup, das der OP ursprünglich gepostet hat, sieht für den Zweck sehr sinnvoll aus: Eine Liste von Elementen; zwei Buttons für die Bedienung per JavaScript, das ganze mit einem Div gruppiert. Die Elemente werden also genau für das eingesetzt, wofür sie vorgesehen sind. Alles richtig gemacht.
Völliger Unsinn wäre es, dieses sinnvolle Markup derart kaputtzumachen, wie du es vorschlägst.
Bitte versteh das doch endlich.

Was explanator ursprünglich anmerkte bezog sich lediglich auf die gleichzeitige Verwendung von display:inline und float bei ein und demselben Element -- also auf CSS. (Dass das nicht immer wirkungslos ist und was die wahrscheinliche Herkunft dieser Kombination ist, habe ich bereits erklärt.)
Leider hat der Satz "Wenn man ein Element floatet wird es zu einem Blockelement." zu eben dem Missverständnis geführt, das ich hier die ganze Zeit versuche, auszuräumen: Der OP dachte, er müsse etwas an seinem HTML ändern. Nein, das muss und sollte er nicht. Das HTML ist völlig in Ordnung und es ist auch völlig in Ordnung ein button-Element zu floaten!

Zitat:
Wenn man sich mal anschaut, wie verschwenderisch automatisch generierter Code HTML-Elemente einsetzt, um irgendetwas zu kapseln, ist es doch moderat, für die Positionierung hier eine Reihe aus DIVs zu verwenden. Dann weiß man: Die DIVs sind für die Position da und die anderen Elemente haben erst mal ihre normalen Eigenschaften. Denn wenn BaTam jetzt ein JavaScript schreibt, dann kann er mit den DIVs unkompliziert eine allgemeine Struktur erzeugen und das Script später für andere SlideNavs wiederverwenden, auch, wenn diese wieder ganz neue Elemente beinhalten...
Nein, so sollte man eben nicht vorgehen. Man sollte seinen Inhalt immer zuerst mit sinnvollem HTML auszeichnen -- dabei ist egal, wie später die Gestaltung aussehen soll. Der Inhalt entscheidet darüber, welche HTML-Elemente sinnvoll sind. Div-Elemente braucht man, um Gruppen von Elementen zusammenzufassen, nicht um zu "positionieren". Positionieren kann man nur mit CSS und das mit jedem Element.

Wenn man eine Gestaltung modular verwendbar halten will, dann vergibt man Klassen und verwendet im Stylesheet nur Klassenselektoren, keine Typselektoren. Dann ist es egal, ob man einmal ein <ul class="mymodule"> hat oder <article class="mymodule"> oder <div class="mymodule">. .mymodule { color:red} wirkt immer.

Geändert von fricca (06.01.2014 um 15:59 Uhr)
Mit Zitat antworten
  #28 (permalink)  
Alt 06.01.2014, 16:40
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Zusammenfassend:
Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
Der Unterschied ist mir schon klar. Ich wollte ja nur anmerken, dass ich es semantisch sinnvoller finde, HTML-Block-Elemente auch als solche zu verwenden.
"Block Element" ist keine Semantik. Das Block bezieht sich nur auf die Darstellung.
Mit Zitat antworten
  #29 (permalink)  
Alt 07.01.2014, 18:58
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 09.10.2010
Beiträge: 154
MitjaStachowiak befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Das ist falsch. Man kann ein Blockelement nicht als inline-Element verwenden. Man kann es nur so darstellen.
Das ist der riesige Unterschied, den man hier schon seitenweise versucht, dir klarzumachen!
Ist "verwenden" jetzt ein geschützter Fachbegriff von HTML? Ich meine SPAN und DIV verwendet man hauptsächlich, um die Darstellung von etwas anzupassen und wenn man ein DIV als inline darstellt, verwendet man es folglich auch als inline. Das sind doch nur Wortklaubereien.

Ich habe mal in meinem Code aus Post #15 LI statt DIV verwendet:
Code:
  <UL class="slideNav" id="slideNav">
   <LI class="firstBlock"></LI>
   <LI class="block" style="background-color : red; ">Video1</LI>
   <LI class="block" style="background-color : blue; ">Video2</LI>
   <LI class="block" style="background-color : green; ">Video3</LI>
   <LI class="block" style="background-color : yellow; ">Video4</LI>
   <LI class="block" style="background-color : silver; ">Video5</LI>
   <LI class="block" style="background-color : black; ">Video6</LI>
  </UL>
Das erzeugt jedenfalls heftige Fehldarstellungen. DIV ist hier das allgemeinere Element. LI ist für mich eine Liste, im Sinne eines Inhaltsverzeichnisses oder einer Aufzählung. Aber eine SlideShow? Ein naturelles HTML-Element hierfür gibt es nicht, deswegen benötigt man ja diverse StyleSheets, um eine SlideShow darzustellen. Und bloß, weil es sich dabei um eine Art Liste handelt, LI zu verwenden und mit CSS herunzuformatieren, bis es irgendwie wieder stimmt... Das will mir einfach nicht gefallen.

Des weiteren verwenden viele, gerade für Elemente, wie LI, globale Stylesheets, die dann mit der SlideShow kollidieren können.

Mit einheitlichen DIVs könnte BaTam zum Beispiel eine JavaScript-Klasse schreiben, deren Konstruktor eine Beschreibung, wie "Receives a DIV element, that contains the slide DIV-blocks" genügte. Aber versuch' mal jemand zu erklären, dass die slide blocks alle möglichen Elemente sein können, aber dann doch wieder nicht alle.

Ich programmiere zwar erst seit ~5 Jahren, aber gerade aus der Anfangszeit habe ich etliche Codes, die einfach nicht allgemein genug gehalten sind und die ich jetzt wegwerfen kann.

Zitat:
"Block Element" ist keine Semantik. Das Block bezieht sich nur auf die Darstellung.
Ich finde, die Darstellung sollte auch einer Semantik unterliegen. Jedenfalls ganz grob. Man kann mit CSS viel Unsinn anstellen...

Geändert von MitjaStachowiak (07.01.2014 um 19:03 Uhr)
Mit Zitat antworten
Sponsored Links
  #30 (permalink)  
Alt 07.01.2014, 19:16
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 28.01.2005
Beiträge: 11.775
fricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz seinfricca kann auf vieles stolz sein
Standard

Zitat:
Zitat von MitjaStachowiak Beitrag anzeigen
Ich meine SPAN und DIV verwendet man hauptsächlich, um die Darstellung von etwas anzupassen und wenn man ein DIV als inline darstellt, verwendet man es folglich auch als inline. Das sind doch nur Wortklaubereien.
Nein, es ist fürs Verständnis und die Kommunikation ein entscheidender Unterschied. Das merkst du doch in diesem Thread. Der einfache Satz "Wenn man ein Element floatet wird es zu einem Blockelement." hat zu einem völlig ausufernden Thread geführt. Eigentlich ging es nur darum, dass "display:inline" wirkungslos ist.

Zitat:
[Codeschnipsel] Das erzeugt jedenfalls heftige Fehldarstellungen.
Die Fehldarstellunegn, die ich sehen kann, liegen
  1. am Quirksmodus (völlig ungeeignet, wenn man etwas testen will!)
  2. dem Typselektor in deinem Stylesheet (div.slideNav wirkt nicht bei einem ul-Element!)
  3. den default-Styles der Listen.
Das mit ein paar Zeilen CSS zu lösen ist überhaupt kein Problem. Alles kein Grund, semantikfreies Markup zu verwenden.


Zitat:
Mit einheitlichen DIVs könnte BaTam zum Beispiel eine JavaScript-Klasse schreiben, deren Konstruktor eine Beschreibung, wie "Receives a DIV element, that contains the slide DIV-blocks" genügte.
Man könnte auch "Recieves an element with class "mymodule" that contains elements with class "mymodule-items" verwenden.
Und schon ist es egal, ob man bedeutungslose Divs oder semantisch sinnvolle Listenelemente verwendet.

Was du hier schreibst ist die Sichtweise eine Programmierers, der rein darauf bedacht ist, den Code für seine Zwecke leicht verarbeitbar zu halten.
Deshalb brauchen Projekte auch Spezialisten fürs Frontend, die darauf achten, dass HTML sinnvoll eingesetzt wird. Es gibt Nutzer, die sind darauf angewiesen, dass man ihnen sinnvolles HTML liefert. Nutzer von Screenreadern z.B.
Wenn du ein iOS oder OSX-Gerät hast, kannst du VoiceOver einschalten. Wenn du mal eine zeitlang versuchst, ohne hinzuschauen dich damit durchs Web zu bewegen, ändert sich deine Sichtweise auf die sinnvolle Verwendung von HTML-Elementen, glaub mir.

Zitat:
Ich finde, die Darstellung sollte auch einer Semantik unterliegen. Jedenfalls ganz grob. Man kann mit CSS viel Unsinn anstellen...
Ja, man kann mit CSS die Nutzbarkeit einer Website komplett zerstören. Aber das hat mit Semantik nichts zu tun! Semantik = Bedeutung kann nur das HTML haben!!einself!
Bitte, bitte versuch das zu verstehen. Semantik und CSS haben nichts miteinander zu tun.

Geändert von fricca (07.01.2014 um 19:20 Uhr)
Mit Zitat antworten
Sponsored Links
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CSS Mehrere div Objecte per hover bewegen adl-solutions CSS 7 29.09.2013 11:35
Transparentes Gif kontinuierlich bewegen erich.wanker CSS 1 06.04.2011 21:10
Button soll sich bei Mausberührung bewegen 19Magicg80 CSS 8 03.10.2008 18:25
Bewegen von Elementen im Browser netbenni Javascript & Ajax 2 25.03.2008 12:45
Fixe Seitenleiste die sich doch bewegen soll fabske (X)HTML 5 15.08.2007 23:52


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:00 Uhr.