12. marts 2014 - 19:46Der er
8 kommentarer og 1 løsning
Highlight baggrund, fjerne tekst (ikke CSS/HTML)
Hej alle,
Jeg vil gerne have mulighed for at tilføje en baggrundsfarve til den information jeg hiver ud af min database. Det er dog ikke et spørgsmål om simpel CSS.
Hvis jeg eksempelvis har en streng "Testing", vil jeg gerne tilføje en baggrundsfarve ligesom en highlight. Teksten skal bare HELT fjernes, således at baggrundsfarven fylder lige så meget som ordet, men selve ordet ikke fremgår.
Men den information jeg hiver ud af databasen kan jo have \n i sig, så hvordan sørger den for at følge tekstens opbygning og tilføjer baggrundsfarven, men helt fjerner bogstaverne?
Det er ikke nok blot at sætte farven på bogstaverne til samme baggrundsfarve.
Aha. Ja, så bliver det straks ekstremt kompliceret. Du kan ikke få et html-element til at udvide sig efter en tekst, uden at den tekst findes i koden - og du kan ikke måle pixelstørrelsen af en tekst, uden at udskrive den.
Det kan godt nok lade sig gøre at måle bredden server-side, men så bliver det kompliceret med linjeskift.
Er det en mulighed for dig, at bruge en monospace font? I så fald er det jo så simpelt som at udskrive en streng af tilfældige bogstaver med samme længde som den korrekte.
Som jeg ser det er den eneste mulighed at gøre det gennem PHP. På den måde sikrer jeg, at teksten ikke bliver udskrevet til brugeren. Om det bliver kompliceret er i virkeligheden også fint, men der må næsten være en smart måde at udføre opgaven på.
Eventuelt kunne man måske tjekke strengen igennem, og hvis den indeholder linjeskift skal den manuelt udskrive dem? Det er bare lidt kringlet. Hvis nogen kan komme med et forslag til hvordan vil jeg være meget taknemmelig.
Du kan måle pixelstørrelsen af en streng i PHP med imagettfbbox() - og ja, du kan jo dele det op i delstrenge på linje med preg_split('/[\r\n]+/s') og skrive dem ud én ad gangen i hvert sit element. Men helt simpelt er det ikke.
Jeg vil også tro, at størrelsen af teksten varierer en smule mellem PHP og HTML, fordi de bruger forskellig antialiasing.
Er det smartere at lade PHP skabe et billede med en ønsket farve til både tekst og baggrund? På den måde vil PHP godt nok udskrive strengen til billedet, men billedet vil ikke kunne læses pga de ens farver?
Så du simpelthen udskriver et ensfarvet billede i den størrelse, teksten ellers ville optage? Også en mulighed. Svært at sige, uden helt at vide, hvad du skal bruge det til.
Tak, men det er lidt mange point at give for noget, der egentlig ikke kom et svar på. Tag du også selv.
Held og lykke med det.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.