ZoRaC Skrevet 23. mai 2006 Skrevet 23. mai 2006 (endret) Bruker FCKeditor (en WYSIWYG-editor) på siden min, men er en liten svakhet i den. Om jeg skal ha en UL-liste som denne: Overskrift <ul> <li>Liste</li> <li>Liste</li> </ul> Blir HTMLen slik: Overskrift<br /> <ul><br /> <li>Liste</li><br /> <li>Liste</li><br /> </ul> Ønsker å fjerne ALLE <br /> fra oversriften og fra <ul> til </ul> Noen som har noen tips til "angrepstaktikk" på dette problemet? Edit: Må bare nevne at hele innholdet i tekstboksen er $text og jeg skal ikke fjerne alle <br /> fra $text, bare de i listen. Endret 23. mai 2006 av ZoRaC
Christian. Skrevet 23. mai 2006 Skrevet 23. mai 2006 Du ønsker å gjøre slik at alle tingen i li skal stå på rekke? Liste 1 Liste 2 og ikke Liste 1 Liste 2 ? Hvis det kan du vel bare sette li { display: inline } eller ul i css
Martin A. Skrevet 23. mai 2006 Skrevet 23. mai 2006 Når man bruker <ul> lager den en horisontal liste, <ol> lager vel vertikal liste. Det han ville var å fjerne <br /> fra <ul>-listen. Er på jobb nå, så har ikke tid til å fundere på noe lurt.
Peter Skrevet 23. mai 2006 Skrevet 23. mai 2006 (endret) Det er helt feil ul står for unordered list, mens ol står for ordered list. ol brukes når du skal ha: Én To Tre Én To Tre Én To Tre mens ul brukes for slike lister: Én To Tre Jeg har dessverre ikke noen god løsning på problemet i første posten, annet enn å gjøre de som har laget WYSIWIG-editoren oppmerksomme på problemet, for det der er feil kode. (Kan aldri i verden tenke meg at den er i nærheten av å validere) Endret 23. mai 2006 av Nazgul
ZoRaC Skrevet 23. mai 2006 Forfatter Skrevet 23. mai 2006 Nazgul: Er en lang liste med små bugs i editoren, og utviklerene har begrenset tid til å rette alle. Trenger en workaround i mellomtiden. Ser for meg noe slikt (pseudokode): $startline = linjenummer for <ul> fjern siste <br /> fra $startline-1 $endline = linjenummer for </ul> fjern siste <br /> på alle linjer mellom $startline og $endline Noen som er "drevne" på bruk at disse funksjonen? Har ikke så mye kjennskap til hvilke jeg må bruke...
hockey500 Skrevet 23. mai 2006 Skrevet 23. mai 2006 (endret) *Slettet, tåpelig ide* Endret 23. mai 2006 av hockey500
spiffers Skrevet 23. mai 2006 Skrevet 23. mai 2006 (endret) To linjer kode som fikser det... <? # Variabelen som inneholder sjit som skal renskes opp er $streng $streng = explode("<br>", $streng); $streng = implode("", $streng); ?> Forresten, siste utgave av FCKeditor legger ikke inn <br>... Endret 23. mai 2006 av spiffers
ZoRaC Skrevet 24. mai 2006 Forfatter Skrevet 24. mai 2006 To linjer kode som fikser det... <? # Variabelen som inneholder sjit som skal renskes opp er $streng $streng = explode("<br>", $streng); $streng = implode("", $streng); ?> Forresten, siste utgave av FCKeditor legger ikke inn <br>... 6165967[/snapback] Problemet da er at den fjerner ALLE <br> i $text, de som er over/under <ul>-listen også. Har satt FCKeditor til å sette inn <br> ved linjeskift i stedet for å bruke <p> for da blir linjeavstanden "dobbel" når man trykker <enter>...
spiffers Skrevet 24. mai 2006 Skrevet 24. mai 2006 $streng = explode("</li><br />", $streng); $streng = implode("</li>", $streng); Dette gjør susen da
stiber Skrevet 24. mai 2006 Skrevet 24. mai 2006 Denne sletter alle <br /> mellom <ul> og </ul> og etter overskrift, men tar ikke høyde for "nestede" lister: $text = preg_replace("/<br \/>(?=\s*<ul>)|<br \/>(?=(?:(?!<ul>).)*<\/ul>)/s","",$text); Denne sletter alle <br /> etter </li>,<ul> og overskrift, men ikke alle mellom <ul> og </ul>. Det kan jo være ønskelig med linjeskift mellom <li> og </li>: $text = preg_replace("/<br \/>(?=\s*<ul>)|(?<=<ul>)<br \/>|(?<=<\/li>)<br \/>/s","",$text);
ZoRaC Skrevet 24. mai 2006 Forfatter Skrevet 24. mai 2006 Takk stiber! Samme med "ul { display: list-item }" ble det akkurat slik jeg ønsket! Drev å prøvde meg litt frem jeg også, og fikk til en fungerende kode for 15 min siden, men dine var jo mye enklere enn min: $remove_str = "<br />"; $str_len = strlen($remove_str); $start = strpos($text, '<ul>') - $str_len - 1; $end = strpos($text, '</ul>'); $remove = substr($text, $start, $end - $start); $removed = str_replace($remove_str, '', $remove); $text = str_replace($remove, $removed, $text); Btw, prøvde begge kodene dine, men ser ikke noe forskjell?
ZoRaC Skrevet 24. mai 2006 Forfatter Skrevet 24. mai 2006 Hmm... Ser ut til at buggen ligger i mitt script for visning etterpå for det kjører visst en nl2br($text). Fjernet den og alt ble mye bedre!
endrebjo Skrevet 25. mai 2006 Skrevet 25. mai 2006 Har satt FCKeditor til å sette inn <br> ved linjeskift i stedet for å bruke <p> for da blir linjeavstanden "dobbel" når man trykker <enter>... 6167698[/snapback] Linjeavstanden til en <p> er jo fryktelig lett å endre ved hjelp av CSS, så jeg kan ikke skjønne hvorfor du erstatter <p> (som er helt riktig) med <br> (som er helt feil).
ZoRaC Skrevet 28. mai 2006 Forfatter Skrevet 28. mai 2006 Vet ikke om man kan endre hvordan <p> skal oppføre seg i redigerings-feltet til FCKeditor? De som skal bruke dette kan null HTML og det er derfor viktig at artikkelen blir seende ut som den gjør under redigering, og brukerne forventer at man flytter seg en linje i gangen når man trykker <enter>, som i Word... Men, om man kan få den til å flytte seg "normalt" i FCKeditor er det seff ingen grunn til å ikke bruke <p>...
Peter Skrevet 28. mai 2006 Skrevet 28. mai 2006 (endret) <br> er linjeskift, <p> er paragraf. De har forskjellig funksjonalitet. <p> er to linjeskift fordi det er slik du deler inn paragrafer, dvs. én blank linje imellom paragrafene, mens <br/> kun er linjeskift for å kunne bryte opp en tekst. Av den grunn har du heller ikke lov til å putte <br /> utenfor et blokkelement. Eks.: http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_br Endret 28. mai 2006 av Nazgul
ZoRaC Skrevet 4. juni 2006 Forfatter Skrevet 4. juni 2006 endrebjorsvik: Hvordan endrer man til "normal" linjeavstand med CSS?
endrebjo Skrevet 4. juni 2006 Skrevet 4. juni 2006 og brukerne forventer at man flytter seg en linje i gangen når man trykker <enter>, som i Word... 6194020[/snapback] Når man trykker <enter> i Word, skifter man faktisk avsnitt. Hvis man bare skal skifte linje, trykker man <shift>+<enter>.Det er bare det at Word ikke har lagt inn ekstra avstand mellom avsnittene som standard for at det skal være enklere å bruke for nybegynnerene. Når man skriver en tekst, skal man faktisk ikke trykke <enter> andre ganger enn når man skifter avsnitt (selv om man på barneskolen lærer å begynne ny setning på ny linje ). Hvis du går inn i Word og skriver litt forskjellig der du veksler mellom å bruke <enter> og <shift>+<enter>, og deretter går på Format -> Avsnitt og setter avstand etter, så vil du se forskjellen mellom linjeskift og avsnittsskift. endrebjorsvik:Hvordan endrer man til "normal" linjeavstand med CSS? 6239312[/snapback] p { line-height: 1.5em; }
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå