2016-04-15 3 views
1

Ich habe eine Webseite mit Namen in DIVs. Manche Namen sind sehr lang und erzeugen bei einigen Bildschirmbreiten Linienbremsen. In diesen Fällen würde ich gerne das erste Wort (zB Vorname) auf den Anfang (zB den ersten Buchstaben) kürzen und den Rest wie es ist (ex David van Macleaoderson -> D van Macleaoderson) für kleinere Linienbremsen.Text kürzen, wenn Linienbremse in einem div erscheint

Wie erkenne ich eine vom Browser gerenderte Linienbremse in einem DIV und führe dann eine verkürzte Operation aus?

Antwort

1

Sie können zunächst die Länge dieses div zählen (bedeutet, wie viele Zeichen in diesem div einstellen) für anpassen Beispiel div nur 20 Zeichen

$divMaxVal = 20; 

$name = "David van Macleaoderson"; 
$stringcnt= strlen($name); // Count the length of string i.e. 23 
if($stringcnt>$divMaxVal){ // Check whether string count ($stringcnt) value is greater than $divMaxVal or not 

//StringCount Value greater than $divMaxVal 

    $split = explode(' ', $name,2); // Explode the String in first occurance of delimeter 
    $firstchar = $split[0]; // =David 
    echo $firstchar[0].' '.$split[1]; // =D van Macleaoderson // combine the first character from David (i.e.Explode array 1st value) and Explode array 2nd value 
}else{ 
// if StringCount Value is not greater than $divMaxVal 
    echo $name; 
} 
+0

Dank für eine schnelle Antwort! Aber dann muss ich mehrere Varianten davon zu jeder Bildschirmbreite machen. Gibt es eine Chance, gerenderte Linien zu zählen? Wenn mehr als 1 Zeile das tun (Split-Explode)? –

+0

Für mehrere Bildschirmbreite jedes Mal, wenn Sie Wert für Variable $ divMaxVal bereitstellen müssen. Aber es ist keine gute Lösung. – Narayan

+0

@DanielWaj Sie wurden nicht erwähnt, ein mehrere Bildschirm in Frage. Wenn wir mehrere Bildschirme verlassen, ist die Antwort laut Ihrer Frage richtig. – Narayan