JavaScript/Navigator/userAgent
mathefritz
- javascript
hat die NavigatorEigenschaft userAgent ein verbindliches Format, ist eine Jahreszahl enthalten?
@@mathefritz
hat die NavigatorEigenschaft userAgent ein verbindliches Format
Wofür?
Wofür auch immer, die Antwort ist (vermutlich): nein.
ist eine Jahreszahl enthalten?
In dem meines Browsers nicht.
Was willst du damit überhaupt? Wofür auch immer du User-Agent nehmen willst, nimm was anderes.
LLAP 🖖
Danke Gunnar
Was willst du damit überhaupt?
mit geringstmöglichen Aufwand feststellen ob grid verfügbar ist, unzutreffendes "Nein" in Kauf nehmend.
Hallo
mit geringstmöglichen Aufwand feststellen ob grid verfügbar ist, unzutreffendes "Nein" in Kauf nehmend.
Grundsätzlich kannst du das in CSS mit @support
tun. Da wir das thema Grid und dessen unterstützung hier auch in einem anderen thread wälzen, solltest du dir marctrix' dortige Antwort zu Gemüte führen. Am Ende des Postings zeigt er, wie man älteren Browser etwas gibt, das sie verstehen und dann den Grid-Code für neuere Browser folgen lässt.
Tschö, Auge
mit geringstmöglichen Aufwand feststellen ob grid verfügbar ist, unzutreffendes "Nein" in Kauf nehmend.
Völlig wirre Ergebnisse, wie üblich bei so einer "Prüfung", auch in Kauf nehmend?
Befrage Modernizr nach "cssgrid", siehe https://modernizr.com/download?cssgrid_cssgridlegacy-setclasses
.no-cssgrid .box { color: red; }
.cssgrid .box { color: green; }
oder
if (Modernizr.cssgrid) {
// supported
} else {
// not-supported
}
@@Linkfetzer
Befrage Modernizr nach "cssgrid"
Nein. Ob CSS-Features verfügbar sind, sollte möglichst mit CSS geprüft werden, nicht mit einer fremden Technologie (JavaScript).
Wenn man das denn hier überhaupt braucht. Vermutlich nicht.
LLAP 🖖
... sollte möglichst mit CSS geprüft werden
ja, Gunnar ( und die modernizr Seite verlangt mir zuviel Blindflug ab )
und
das CSS-Mittel ist @supports
; aber - ich beziehe mich auf den Artikel in c't 2017/6,
ältere Browser unterstützen nichteinmal @supports
und dann wird es lästig.
@@mathefritz
das CSS-Mittel ist
@supports
; aber - ich beziehe mich auf den Artikel in c't 2017/6,
ältere Browser unterstützen nichteinmal@supports
und dann wird es lästig.
Nein, wird’s nicht, weil „HTML und CSS (im vollen Gegensatz bspw. zu JavaScript) so konzipiert sind, dass Browser, die ein bestimmtes Feature nicht verstehen, keinen Fehler werfen und ihren Dienst quittieren, sondern das Feature (sei es ein unbekanntes HTML-Element oder -Attribut, eine unbekannte CSS-Eigenschaft oder Wert) ignorieren und ihre Arbeit (d.h. die Darstellung der Webseite) fortsetzen.“ (yours truly)
Das heißt: wenn du
@supports (display: grid)
{
foo { display: grid }
}
schreibst, ignorieren alte Browser den ganzen Block. Was nicht tragisch ist, da sie mit display: grid
sowieso nichts anfangen können. Und da sie damit nichts anfangen können, ignorieren sie auch das; was bedeutet, dass du auch
foo { display: grid }
schreiben kannst, ohne das in @supports()
zu kapseln.
LLAP 🖖
Hallo Gunnar Bittersmann,
Das heißt: wenn du
@supports (display: grid) { foo { display: grid } }
schreibst, ignorieren alte Browser den ganzen Block. Was nicht tragisch ist, da sie mit
display: grid
sowieso nichts anfangen können. Und da sie damit nichts anfangen können, ignorieren sie auch das; was bedeutet, dass du auchfoo { display: grid }
schreiben kannst, ohne das in
@supports()
zu kapseln.
Nicht unbedingt. Es könnte ja sein, dass man, falls grid unterstützt wird, einen Border auf der rechten Seite haben möchte.
Bis demnächst
Matthias
@@Matthias Apsel
… schreiben kannst, ohne das in
@supports()
zu kapseln.Nicht unbedingt. Es könnte ja sein, dass man, falls grid unterstützt wird, einen Border auf der rechten Seite haben möchte.
Dann kannst du immer noch
foo { display: grid }
@supports (display: grid)
{
foo { border-right: thick solid }
}
schreiben. 😜
Macht natürlich wenig Sinn,
@supports (display: grid)
{
foo
{
display: grid;
border-right: thick solid;
}
}
ist übersichtlicher.
LLAP 🖖
ja, oder
@supports not (display: grid)
{ ... }
@supports (display: grid)
{ ... }
Die entscheidende Frage ist dann aber: geht das auch im body ? Der wäre ja ohne grid ganz anders.
Hallo
... sollte möglichst mit CSS geprüft werden ja, Gunnar ( und die modernizr Seite verlangt mir zuviel Blindflug ab )
und
das CSS-Mittel ist@supports
; aber - ich beziehe mich auf den Artikel in c't 2017/6,
ältere Browser unterstützen nichteinmal@supports
und dann wird es lästig.
Dass du den Link zu einem richtig einfachen Ausweg, den ich dir anempfohlen habe, so tapfer ignorierst, finde ich schon ärgerlich. Aber selbst wenn du das tust, ist dein Argument mit der fehlenden Unterstützung zumindest zweifelhaft.
Letzte @support
nicht unterstützende Browserversionen laut caniuse.com:
Die folgenden Browser unterstützen grid
in ihren aktuellen Versionen nicht: IE 11, Blackberry Browser 10, IE Mobile 11. Diese kommen zusammen auf 3.66% (3.34 + 0 + 0.32). Dabei ist zu berücksichtigen, dass es für den IE 11 Ersatz gibt (Edge oder jeder andere auf Windows verfügbare Browser) und grid
auf Smart Phones, wo IE Mobile 11 läuft, nicht die Rolle spielt, die es mittelfristig auf Geräten mit größeren Viewports einnehmen wird. Daher, und weil Browser ihnen nicht bekannte Eigenschaften ignorieren, wie bereits mehrfach erklärt wurde, muss man deswegen dort auch nicht mit @support
arbeiten.
Für alle anderen Browser gilt, dass die letzten Versionen, die @support
nicht unterstützen, derart alt sind, dass sie keine oder nur eine verschwindend kleine Rolle spielen.
Dein Argument zieht also aus mehreren Gründen nicht. Weder haben die Browser, die @support
nicht unterstützen, eine relevante Verbreitung, noch musst du überhaupt mit @support
arbeiten.
Tschö, Auge
Hallo Auge,
noch musst du überhaupt mit
@support
arbeiten.
Manchmal möchte man aber aus $gründen mit @supports
arbeiten. m1695999 f.
Bis demnächst
Matthias
Hallo
noch musst du überhaupt mit
@support
arbeiten.Manchmal möchte man aber aus $gründen mit
@supports
arbeiten. m1695999 f.
Kann man ja, da wo es funktioniert. Dann gibt's, um bei deinem Beispiel zu bleiben, in ein paar wenigen browsern keinen breiteren Rand. So what?
Mir ging es unmittelbar um das fehlerhafte Argument der ungenügenden Unterstützung von @support
an sich und mittelbar um die fehlende Notwendigkeit, @support
wegen grid
zu benutzen.
Tschö, Auge
Hallo Auge,
Manchmal möchte man aber aus $gründen mit
@supports
arbeiten. m1695999 f.Kann man ja, da wo es funktioniert. Dann gibt's, um bei deinem Beispiel zu bleiben, in ein paar wenigen browsern keinen breiteren Rand. So what?
Deswegen schrieb ich ja möchte. Und das war das erste Beispiel, was mir einfiel.
Mir ging es unmittelbar um das fehlerhafte Argument der ungenügenden Unterstützung von
@support
an sich und mittelbar um die fehlende Notwendigkeit,@support
wegengrid
zu benutzen.
Btw: Die @-Regel heißt "@supports".
Bis demnächst
Matthias
Hallo
Mir ging es unmittelbar um das fehlerhafte Argument der ungenügenden Unterstützung von
@support
an sich und mittelbar um die fehlende Notwendigkeit,@support
wegengrid
zu benutzen.Btw: Die @-Regel heißt "@supports".
Mist! 😉 Da korrigiert man sich einen ab, um fehlende Großschreibung zu ergänzen oder and er falschen Stelle eingefügte Leerzeichen an den rechten Platz zu rücken und dann übersieht man sowas. *grml*
Tschö, Auge
Hallo Auge,
Mist! 😉 Da korrigiert man sich einen ab, um fehlende Großschreibung zu ergänzen oder and er falschen Stelle eingefügte Leerzeichen an den rechten Platz zu rücken und dann übersieht man sowas. *grml*
Spracheingabe?
Bis demnächst
Matthias
Hallo
Da korrigiert man sich einen ab, um fehlende Großschreibung zu ergänzen oder and er falschen Stelle eingefügte Leerzeichen an den rechten Platz zu rücken und dann übersieht man sowas. *grml*
Spracheingabe?
Nein, damit kann ich mich nicht rausreden.
Tschö, Auge
@@Auge
Spracheingabe?
Nein, damit kann ich mich nicht rausreden.
Spracheingabe ist denn ja zum Einreden.
LLAP 🖖
@@Auge
Die folgenden Browser unterstützen
grid
in ihren aktuellen Versionen nicht: IE 11
Da CSS Grid ursprünglich von Microsoft stammt, fällt es mir schwer, das zu glauben.
IE ab 10 und Edge unterstützen Grid – in der ursprünglich von MS implementierten Variante und mit -ms-
-Präfix.
LLAP 🖖
Hallo
Die folgenden Browser unterstützen
grid
in ihren aktuellen Versionen nicht: IE 11Da CSS Grid ursprünglich von Microsoft stammt, fällt es mir schwer, das zu glauben.
Öhhm, ja, da sollte auch „unterstützen @support
in ihren aktuellen Versionen nicht“ stehen. Es ging mir vor allem darum, das Argument, nichtmal @support
würde von allen Browsern unterstützt, entkräften. Da ist mir die darunter liegende Diskussion um grid
dawischen gekommen.
IE ab 10 und Edge unterstützen Grid – in der ursprünglich von MS implementierten Variante und mit
-ms-
-Präfix.
Tja, dann ist die Riege der Browser, die grid
nicht unterstützen und die deshalb mit @support
von den dazugehörigen Regeln (nicht) ausgeschlossen werden müssen, noch kleiner geworden.
Tschö, Auge
@@Gunnar Bittersmann
Da CSS Grid ursprünglich von Microsoft stammt, fällt es mir schwer, das zu glauben.
IE ab 10 und Edge unterstützen Grid – in der ursprünglich von MS implementierten Variante und mit
-ms-
-Präfix.
Und da ich zufällig gerade beim Fernsehen bin: Das sagt Rachel Andrew doch. Where does CSS come from? ab 7:43
LLAP 🖖
@@Linkfetzer
In deinem Namen ist ein Strich zu viel? Du meintest: Linkſetzer?
LLAP 🖖
Hallo
In deinem Namen ist ein Strich zu viel? Du meintest: Linkſetzer?
Wieso? Da kein Link gesetzt worden ist, wäre der Name unzutreffend.
Tschö, Auge