Ich habe ein seltsames Problem und ich bin nicht sicher, wie ich es lösen soll. Ich möchte das erste Zeichen eines Textfeldes bekommen, das ich von einer Datenbank erhalte. Mit diesem Zeichen würde ich einen CSS-Stil anwenden, um es groß zu machen.
Wenn Sie diesen folgenden Code ausprobieren, werden Sie verstehen, was mein Problem ist:
%Vor%Der obige Code wird ausgegeben:
Ich
Ã
Ã
Es scheint, dass ein französisches Zeichen mehr als ein Byte in einer Zeichenfolge verwendet. Das Problem ist, dass nicht alle meine Sätze mit einem französischen Zeichen beginnen. Jeder hat eine Idee, wie ich eine Funktion haben könnte, die das konvertiert:
%Vor%Zu diesem
%Vor%Oder vielleicht gibt es einen besseren Weg mit CSS3, dies zu tun.
Siehe für mb_substr
( Ссылка )
mb_substr
berücksichtigt die Codierung und gibt alle Bytes zurück, die das erste Zeichen darstellen.
CSS3 hat eine Pseudoklasse ::first-letter
, die nur den ersten Buchstaben auswählt.
Beispiel:
Ihr HTML ist:
%Vor%Dann können Sie es mit CSS3 ansprechen:
%Vor% (P .: Heutzutage verwendet der Standard ::first-letter
(doppelter doppelter Doppelpunkt anstelle eines einzelnen doppelten Doppelpunkts), aber für die beste Rückwärtskompatibilität sollte nur ein doppelter Doppelpunkt verwendet werden)
Die Ausgabe sollte lauten:
%Vor%Sie können das beheben, indem Sie
ausführen %Vor%Momentan ist Ihre Quelle in UTF-8, aber der Browser interpretiert sie als Windows-1252.
Sie können dann $first_char = mb_substr($string, 0, 1, "UTF-8");
ausführen, um Ihr Problem zu vervollständigen.
Sie wenden die Pseudo-Klasse "first-letter" besser auf das Containerelement an. Es wird von allen gängigen Browsern unterstützt und verfälscht Ihren HTML-Code nicht. Zum Beispiel, wenn Sie eine Liste mit Elementen wie folgt haben:
%Vor%Sie wenden das CSS für den ersten Buchstaben wie folgt auf jedes li-Element an:
%Vor%