|
| problem med noget <br/> Fra : scootergrisen |
Dato : 21-02-11 05:27 |
|
Jeg har et problem jeg ikke ved hvordan jeg skal løse.
Teksten som skal vises på min hjemmeside står i filer som her :
Hej og velkommen.
Her vil jeg skrive om noget.
Og her noget mere.
Derefter sender jeg teskten igennem noget kode som tilføjer <br/> :
Hej og velkommen.<br/>
Her vil jeg skrive om noget.<br/>
Og her noget mere.<br/>
Nu vil jeg gerne kombinere tekst og javascript som her :
<script type="text/javascript">
var x = 10;
document.write(x);
</script>
Hej og velkommen.
Her vil jeg skrive om noget.
Og her noget mere.
Men så fucker det jo javascript koden op :
<script type="text/javascript"><br/>
var x = 10;<br/>
document.write(x);<br/>
</script><br/>
<br/>
Hej og velkommen.<br/>
Her vil jeg skrive om noget.<br/>
Og her noget mere.<br/>
Jeg vil meget gerne undgå at skulle til at skrive <br/> efter hver linie
i alle mine filer med tekst til hjemmesiden fordi det er da for
besværligt så håber i derude har nogen ideer til en anden løsning.
| |
Andreas Andersen (21-02-2011)
| Kommentar Fra : Andreas Andersen |
Dato : 21-02-11 07:38 |
|
Den 21-02-2011 05:26, scootergrisen skrev:
> Jeg har et problem jeg ikke ved hvordan jeg skal løse.
>
> Teksten som skal vises på min hjemmeside står i filer som her :
>
> Hej og velkommen.
> Her vil jeg skrive om noget.
> Og her noget mere.
>
> Derefter sender jeg teskten igennem noget kode som tilføjer <br/> :
>
> Hej og velkommen.<br/>
> Her vil jeg skrive om noget.<br/>
> Og her noget mere.<br/>
>
> Nu vil jeg gerne kombinere tekst og javascript som her :
>
> <script type="text/javascript">
> var x = 10;
> document.write(x);
> </script>
>
> Hej og velkommen.
> Her vil jeg skrive om noget.
> Og her noget mere.
>
> Men så fucker det jo javascript koden op :
>
> <script type="text/javascript"><br/>
> var x = 10;<br/>
> document.write(x);<br/>
> </script><br/>
> <br/>
> Hej og velkommen.<br/>
> Her vil jeg skrive om noget.<br/>
> Og her noget mere.<br/>
>
> Jeg vil meget gerne undgå at skulle til at skrive <br/> efter hver linie
> i alle mine filer med tekst til hjemmesiden fordi det er da for
> besværligt så håber i derude har nogen ideer til en anden løsning.
Hvis jeg gemte data på den måde, ville jeg nok også bare gå mine filer
igennem og tilføje <br />. Hvad gør du f.eks. hvis du beslutter at "Hej
og velkommen" skal være i fed tekst?
Hvis jeg havde besluttet, at det var uacceptabelt, ville jeg dele dem op
i elementer og gemme dem enten i en database eller i xml. Xml-formatet
kunne f.eks. se således ud:
<contentelements>
<contentelement type="text">Hej og velkommen</contentelement>
<contentelement type="javascript">var x = 10;
document.write(x);
</contentelement>
<contentelement type="text">Bla bla</contentelement>
</contentelements>
På den måde adskiller du håndteringen af de forskellige elementtyper.
--
Andreas
| |
scootergrisen (21-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 21-02-11 16:14 |
|
> Hvis jeg gemte data på den måde, ville jeg nok også bare gå mine filer
> igennem og tilføje <br />. Hvad gør du f.eks. hvis du beslutter at "Hej
> og velkommen" skal være i fed tekst?
Det med at jeg selv skal tilføje <br/> ved hvert linieskifter vil jeg
gerne undgå. Ellers er det "let nok" hvis jeg vælger den løsning. Altså
så kan jeg få det som jeg vil borset fra jeg ikke vil tilføje det efter
hver linie for det er da for besværligt syns jeg.
Det derfor jeg bruger :
$indhold .= str_replace("\r\n", "<br/>\r\n", $data);
Så det dejlig og skriver noget til hjemmesiden fordi så skal jeg ikke
indsætte de skide <br/> hele tiden.
Og hvis jeg vil gøre noget tekst fed så skriver jeg det bare ligesom
normalt :
Hej og velkommen.
Noget <span style="font-weight:bold;">fed tekst</span>.
Og her noget mere.
> Hvis jeg havde besluttet, at det var uacceptabelt, ville jeg dele dem op
> i elementer og gemme dem enten i en database eller i xml. Xml-formatet
> kunne f.eks. se således ud:
> <contentelements>
> <contentelement type="text">Hej og velkommen</contentelement>
> <contentelement type="javascript">var x = 10;
> document.write(x);
> </contentelement>
> <contentelement type="text">Bla bla</contentelement>
> </contentelements>
>
> På den måde adskiller du håndteringen af de forskellige elementtyper.
>
Og hvordan skal jeg så få de data ind på hjemmesiden ?
Jeg kender ik så meget til XML og hvordan det bruges.
| |
Andreas Andersen (21-02-2011)
| Kommentar Fra : Andreas Andersen |
Dato : 21-02-11 17:33 |
|
Den 21-02-2011 16:13, scootergrisen skrev:
> Og hvordan skal jeg så få de data ind på hjemmesiden ?
> Jeg kender ik så meget til XML og hvordan det bruges.
Der findes standardbiblioteker til at parse XML i stort set alle sprog.
For PHP se her: http://php.net/manual/en/book.xml.php . Men det er
selvfølgelig lidt et projekt at sætte sig ind i, hvis du ikke ved noget
om XML. Hvis du er nysgerrig kan du også forsøge at google noget om XSLT.
Hvis du bare skal bruge noget let og hurtigt til et lille projekt,
virker Birgers forslag jo fint. Til lidt større projekter er det dog den
slags, der meget hurtigt leder til ulæseligt spaghettikode. Så skal det
også liiiige kunne det og det og det og det, og før man ved af det, har
man 50 nestede if-sætninger uden kommentarer.
--
Andreas
| |
Birger Sørensen (21-02-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 21-02-11 16:41 |
|
scootergrisen kom med følgende:
> Jeg har et problem jeg ikke ved hvordan jeg skal løse.
>
> Teksten som skal vises på min hjemmeside står i filer som her :
>
> Hej og velkommen.
> Her vil jeg skrive om noget.
> Og her noget mere.
>
> Derefter sender jeg teskten igennem noget kode som tilføjer <br/> :
>
> Hej og velkommen.<br/>
> Her vil jeg skrive om noget.<br/>
> Og her noget mere.<br/>
>
> Nu vil jeg gerne kombinere tekst og javascript som her :
>
> <script type="text/javascript">
> var x = 10;
> document.write(x);
> </script>
>
> Hej og velkommen.
> Her vil jeg skrive om noget.
> Og her noget mere.
>
> Men så fucker det jo javascript koden op :
>
> <script type="text/javascript"><br/>
> var x = 10;<br/>
> document.write(x);<br/>
> </script><br/>
> <br/>
> Hej og velkommen.<br/>
> Her vil jeg skrive om noget.<br/>
> Og her noget mere.<br/>
>
> Jeg vil meget gerne undgå at skulle til at skrive <br/> efter hver linie i
> alle mine filer med tekst til hjemmesiden fordi det er da for besværligt så
> håber i derude har nogen ideer til en anden løsning.
http://dk2.php.net/manual/en/function.nl2br.php
$is_script = false;
$lines = file();
while ( $lines as $lin) {
if ( str_pos( $lin, '<script'))
$is_script = true;
}
if ( isscript && str_pos( $lin, '</script')) {
$is_script = false;
}
if ( !$is_script) {
$lin = nl2br( $lin, true);
}
// udskriv $lin
}
De sædvanlige forbehold... Også for at man ikke kan skrive til arrayet
i worech loops.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
scootergrisen (21-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 21-02-11 17:29 |
|
Den 21-02-2011 16:41, Birger Sørensen skrev:
> scootergrisen kom med følgende:
>> Jeg har et problem jeg ikke ved hvordan jeg skal løse.
>>
>> Teksten som skal vises på min hjemmeside står i filer som her :
>>
>> Hej og velkommen.
>> Her vil jeg skrive om noget.
>> Og her noget mere.
>>
>> Derefter sender jeg teskten igennem noget kode som tilføjer <br/> :
>>
>> Hej og velkommen.<br/>
>> Her vil jeg skrive om noget.<br/>
>> Og her noget mere.<br/>
>>
>> Nu vil jeg gerne kombinere tekst og javascript som her :
>>
>> <script type="text/javascript">
>> var x = 10;
>> document.write(x);
>> </script>
>>
>> Hej og velkommen.
>> Her vil jeg skrive om noget.
>> Og her noget mere.
>>
>> Men så fucker det jo javascript koden op :
>>
>> <script type="text/javascript"><br/>
>> var x = 10;<br/>
>> document.write(x);<br/>
>> </script><br/>
>> <br/>
>> Hej og velkommen.<br/>
>> Her vil jeg skrive om noget.<br/>
>> Og her noget mere.<br/>
>>
>> Jeg vil meget gerne undgå at skulle til at skrive <br/> efter hver
>> linie i alle mine filer med tekst til hjemmesiden fordi det er da for
>> besværligt så håber i derude har nogen ideer til en anden løsning.
>
> http://dk2.php.net/manual/en/function.nl2br.php
>
> $is_script = false;
> $lines = file();
> while ( $lines as $lin) {
> if ( str_pos( $lin, '<script'))
> $is_script = true;
> }
> if ( isscript && str_pos( $lin, '</script')) {
> $is_script = false;
> }
> if ( !$is_script) {
> $lin = nl2br( $lin, true);
> }
> // udskriv $lin
> }
>
> De sædvanlige forbehold... Også for at man ikke kan skrive til arrayet i
> worech loops.
>
> Birger
>
Ok tak men det ser ud til det kun virker hvis det først er "<script" der
kan godt stå noget før.
Jeg fandt dette :
preg_replace('/(?<!>)\r\n/', "<br/>\r\n", $data)
Det ser næsten ud til at gøre som jeg vil.
Men hvis jeg har :
<img>
Hej med dig.
Halløjsa.
Så bliver der til :
<img>
Hej med dig.<br/>
Halløjsa.<br/>
Men det skulle gerne blive til :
<img><br/>
Hej med dig.<br/>
Halløjsa.<br/>
Hvordan gør man det ?
| |
Birger Sørensen (21-02-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 21-02-11 18:18 |
|
scootergrisen formulerede mandag:
> Den 21-02-2011 16:41, Birger Sørensen skrev:
>> scootergrisen kom med følgende:
>>> Jeg har et problem jeg ikke ved hvordan jeg skal løse.
>>>
>>> Teksten som skal vises på min hjemmeside står i filer som her :
>>>
>>> Hej og velkommen.
>>> Her vil jeg skrive om noget.
>>> Og her noget mere.
>>>
>>> Derefter sender jeg teskten igennem noget kode som tilføjer <br/> :
>>>
>>> Hej og velkommen.<br/>
>>> Her vil jeg skrive om noget.<br/>
>>> Og her noget mere.<br/>
>>>
>>> Nu vil jeg gerne kombinere tekst og javascript som her :
>>>
>>> <script type="text/javascript">
>>> var x = 10;
>>> document.write(x);
>>> </script>
>>>
>>> Hej og velkommen.
>>> Her vil jeg skrive om noget.
>>> Og her noget mere.
>>>
>>> Men så fucker det jo javascript koden op :
>>>
>>> <script type="text/javascript"><br/>
>>> var x = 10;<br/>
>>> document.write(x);<br/>
>>> </script><br/>
>>> <br/>
>>> Hej og velkommen.<br/>
>>> Her vil jeg skrive om noget.<br/>
>>> Og her noget mere.<br/>
>>>
>>> Jeg vil meget gerne undgå at skulle til at skrive <br/> efter hver
>>> linie i alle mine filer med tekst til hjemmesiden fordi det er da for
>>> besværligt så håber i derude har nogen ideer til en anden løsning.
>>
>> http://dk2.php.net/manual/en/function.nl2br.php
>>
>> $is_script = false;
>> $lines = file();
>> while ( $lines as $lin) {
>> if ( str_pos( $lin, '<script'))
>> $is_script = true;
>> }
>> if ( isscript && str_pos( $lin, '</script')) {
>> $is_script = false;
>> }
>> if ( !$is_script) {
>> $lin = nl2br( $lin, true);
>> }
>> // udskriv $lin
>> }
>>
>> De sædvanlige forbehold... Også for at man ikke kan skrive til arrayet i
>> worech loops.
>>
>> Birger
>>
>
> Ok tak men det ser ud til det kun virker hvis det først er "<script" der kan
> godt stå noget før.
>
> Jeg fandt dette :
> preg_replace('/(?<!>)\r\n/', "<br/>\r\n", $data)
>
> Det ser næsten ud til at gøre som jeg vil.
> Men hvis jeg har :
> <img>
> Hej med dig.
> Halløjsa.
>
> Så bliver der til :
> <img>
> Hej med dig.<br/>
> Halløjsa.<br/>
>
> Men det skulle gerne blive til :
> <img><br/>
> Hej med dig.<br/>
> Halløjsa.<br/>
>
> Hvordan gør man det ?
Har absolut ingen erfarin med regexp.
Mit forslag skal virke på ting der står før script også.
Ser lige...
if ( isscript && str_pos( $lin, '</script')) {
skal selvfølgelig være
if ( $is_script && str_pos( $lin, '</script')) {
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Martin Larsen (21-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 21-02-11 19:42 |
|
Birger Sørensen wrote:
> Har absolut ingen erfarin med regexp.
Du ville gøre dig selv en kæmpe tjeneste ved at lære dig det. Jeg vil
uden tøven sige at det er det nyttigste værktøj jeg nogen sinde har
lært. Jeg har som konsulent siddet i en del softwareafdelinger og har
ofte undret mig over hvor få udviklere der brugte regex. De fleste er
nærmest bange for det! Med det resultat at de laver nogle unødigt
komplicererede og ufleksible løsninger på problemer der kræver få
linjers kode med regex.
Martin
| |
Anonymous (21-02-2011)
| Kommentar Fra : Anonymous |
Dato : 21-02-11 20:06 |
|
Den 21-02-2011 19:41, Martin Larsen skrev:
> Birger Sørensen wrote:
>
>> Har absolut ingen erfarin med regexp.
>
> Du ville gøre dig selv en kæmpe tjeneste ved at lære dig det. Jeg vil
> uden tøven sige at det er det nyttigste værktøj jeg nogen sinde har
> lært. Jeg har som konsulent siddet i en del softwareafdelinger og har
> ofte undret mig over hvor få udviklere der brugte regex. De fleste er
> nærmest bange for det! Med det resultat at de laver nogle unødigt
> komplicererede og ufleksible løsninger på problemer der kræver få
> linjers kode med regex.
Grunden til, nogle folk er afværgende, kan også være, at RegExp er
(eller kan være) krævende for performance. Visse opgaver vil det være
overkill til, og kan måske løses af en anden kode, som gør det hurtigere.
Men når det er sagt - ja, det er ret genialt værktøj :)
Jeg bruger det selv ved POST af formularer, hvor jeg tjekker, at
hjemmeside-felter og navnefelter mm. kun indeholder de tegn, jeg vil
have. Sådan et sted er det f.eks. helt fint at bruuge RegExp - lav en
function, som tager pattern som argument. Den function fylder nada..
MVH
Rune Jensen
| |
Martin Larsen (21-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 21-02-11 19:38 |
|
scootergrisen wrote:
> Så bliver der til :
> <img>
> Hej med dig.<br/>
> Halløjsa.<br/>
>
> Men det skulle gerne blive til :
> <img><br/>
> Hej med dig.<br/>
> Halløjsa.<br/>
Jeg ville også lave det med regex. Inden jeg kigger på det vil jeg lige
have slået fast om jeg forstår det rigtigt: Der skal <br/> efter alle
linjer, *undtagen* hvis de står mellem <script> og </script> ?
Martin
| |
scootergrisen (21-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 21-02-11 20:04 |
|
> Jeg ville også lave det med regex. Inden jeg kigger på det vil jeg lige
> have slået fast om jeg forstår det rigtigt: Der skal <br/> efter alle
> linjer, *undtagen* hvis de står mellem <script> og </script> ?
Yep.
Vil dog også gerne kunne undlade <br/> ved <?php og ?> og <pre> </pre>
og sådan nogen men det kan vi måske prøve og udvidde den til bagefter.
| |
Martin Larsen (21-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 21-02-11 21:57 |
|
scootergrisen wrote:
> Vil dog også gerne kunne undlade <br/> ved <?php og ?> og <pre> </pre>
> og sådan nogen men det kan vi måske prøve og udvidde den til bagefter.
Ja så blev opgaven lidt mere kompliceret, men også desto mere udfordrende :)
Med de fleste regex-implementationer (bl.a. PHPs) er det
vanskeligt/umuligt at *udelukke* mellem tags, så derfor kan man bruge et
lille trick: Erstat newlines med <br/> over det hele, og ryd så op
bagefter mellem de relevante tags.
I programmet har jeg opdelt og kommenteret det regulære udtryk for at
tydeliggøre hvordan det virker. Det kunne sagtens skrives på en enkelt
linje, men så bliver det pludselig meget svært at hitte rede i (mere end
det er i forvejen!) som du kan se:
<(script|pre|option)[^>]*>.*?</\1>(?:<br/>)?|<\?php.*?\?>(?:<br/>)?
Jeg har gjort det sådan at du i excludeTags kan angive de tags der ikke
skal behandles, her script, pre og option. Du kan selv tilføje fx
select. Php-tags er automatisk med og skal ikke angives.
Programmet får sikkert smadret layoutet i newsreaderen, men du kan se og
afprøve det her:
http://kreacom.dk/test/br-test.php.txt
http://kreacom.dk/test/br-test.php
En afsluttende bemærkning: Når man arbejder med regex (som ved al
databehandling i øvrigt), er der et ordsprog: Kend dine data. Det
betyder at der gøres visse forudsætninger. I mit eksempel forudsættes
det således at der ikke allerede forekommer </br> mellem de pågældende
tags, fx </pre><br/></pre>
Hvis du mener at der kan være det, skal det ændres en smule.
Martin
<?
$html = file_get_contents('br-tekst');
$excludeTags = 'script|pre|option'; // Mellem disse tags skal der ikke
være <br/>
$regex = <<<EOD
<($excludeTags)[^>]*>.*?</\\1> #Her matches der mellem excludeTags, fx
<pre>abc</pre>
(?:<br/>)? #Fjern trailing <br/>, fx </script><br/>.
| # Eller ...
<\\?php.*?\\?> #Match mellem php-tags
(?:<br/>)? # og fjern igen trailing <br/>
EOD;
// Først erstat ALLE newlines med <br/>:
$html = str_replace("\n", "<br/>\n", $html);
// Så fjern de overflødige </br> mellem udvalgte tags:
$html = preg_replace_callback("%$regex%isx", 'mycallback', $html);
// Udskriv med html-entititer så vi kan se resultatet
echo '<pre>', htmlspecialchars($html), '</pre>';
function mycallback($matches) {
return str_replace('<br/>', '', $matches[0]);
}
?>
| |
Andreas Andersen (22-02-2011)
| Kommentar Fra : Andreas Andersen |
Dato : 22-02-11 06:14 |
|
Den 21-02-2011 21:56, Martin Larsen skrev:
> En afsluttende bemærkning: Når man arbejder med regex (som ved al
> databehandling i øvrigt), er der et ordsprog: Kend dine data. Det
> betyder at der gøres visse forudsætninger. I mit eksempel forudsættes
> det således at der ikke allerede forekommer </br> mellem de pågældende
> tags, fx </pre><br/></pre>
Problemet er vel et specialtilfælde af parentesmatching, som regulære
udtryk som bekendt ikke kan håndtere til vilkårligt niveau (medmindre
det brugte sprog har en eller anden udvidelse til regulære udtryk). Nu
har jeg ikke studeret dit udtryk i fuldstændig detalje, men det ser ud
til, at du har gjort delen imellem <script> og </script> non-greedy. Det
betyder jo, at det vil dørke ved f.eks.:
<script>
// Dette er imellem <script></script>
document.write("Whatever!");
</script>
hvor det vil matche <script>// Dette er imellem <script></script>
Et tænkt eksempel ganske vist, men jeg synes regulære udtryk er en
hammer til en skrue i dette tilfælde.
--
Andreas
| |
Martin Larsen (22-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 22-02-11 09:43 |
|
Andreas Andersen wrote:
> Problemet er vel et specialtilfælde af parentesmatching, som regulære
> udtryk som bekendt ikke kan håndtere til vilkårligt niveau (medmindre
> det brugte sprog har en eller anden udvidelse til regulære udtryk).
Korrekt
> hvor det vil matche <script>// Dette er imellem <script></script>
> Et tænkt eksempel ganske vist, men jeg synes regulære udtryk er en
> hammer til en skrue i dette tilfælde.
Du har ret i forbeholdet, men det er også derfor jeg gør opmærksom på
"kend dine data". Jeg kender ikke grisens data og kan derfor ikke afgøre
om dette er den rette løsning. Som han beskriver det, tror jeg dog det
vil virke helt fint.
En hammer til en skrue? Nej,bestemt ikke.Jeg vil mere sig en svensknøgle
til en møtrik. Det er fint i rigtigt mange tilfælde, men nogle gange
skal der en fastnøgle til.
En fastnøgle i dette tilfælde vil være en parser.
Martin
| |
Andreas Andersen (22-02-2011)
| Kommentar Fra : Andreas Andersen |
Dato : 22-02-11 10:24 |
|
Den 22-02-2011 09:43, Martin Larsen skrev:
> Du har ret i forbeholdet, men det er også derfor jeg gør opmærksom på
> "kend dine data". Jeg kender ikke grisens data og kan derfor ikke afgøre
> om dette er den rette løsning. Som han beskriver det, tror jeg dog det
> vil virke helt fint.
Det har du nok ret i.
> En hammer til en skrue? Nej,bestemt ikke.Jeg vil mere sig en svensknøgle
> til en møtrik. Det er fint i rigtigt mange tilfælde, men nogle gange
> skal der en fastnøgle til.
>
> En fastnøgle i dette tilfælde vil være en parser.
Købt
--
Andreas
| |
scootergrisen (24-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 24-02-11 15:12 |
|
Tak for koden.
Nu har jeg prøvet den noget tid og det virker da også sådan næsten som
jeg vil have det men alligevel ikke helt.
Jeg har noget output fra browseren :
__________________________________
<div class="kode outputb">
<script type="text/javascript">
function playPause() {
var myVideo = document.getElementById("hiuibuoyiboo");
if (myVideo.paused)
myVideo.play();
else
myVideo.pause();
}
function makeLille() {
var myVideo = document.getElementById("hiuibuoyiboo");
myVideo.height = (myVideo.videoHeight / 2 ) ;
}
function makeBig() {
var myVideo = document.getElementById("hiuibuoyiboo");
myVideo.height = (myVideo.videoHeight * 2 ) ;
}
function makeNormal() {
var myVideo = document.getElementById("hiuibuoyiboo");
myVideo.height = (myVideo.videoHeight) ;
}
</script>
<br/>
<br/>
<a href="javascript:playPause();">Start/Pause</a><br/>
| <a href="javascript:makeLille();">Lille</a><br/>
| <a href="javascript:makeNormal();">Normal</a><br/>
| <a href="javascript:makeBig();">Stor</a><br/>
<br/>
<br><br/>
<br><br/>
<br/>
<video id="hiuibuoyiboo" height="226" preload="none"><br/>
<source xxxbunny.ogv" type="video/ogg" /><br/>
<source xxxbunny.webm" type="video/webm" /><br/>
<source xxxbunny.mp4" type="video/mp4" /><br/>
</video></div>
</div>
_________________________________
Som det ses virker det mellem <script> og </script>. Ingen <br/>.
Men i dette tilfælde skulle der heller ikke være <br/> mellem <div
class="kode outputb"> og </div>... altså det hele.
Jeg tænkte man kunne skrive :
$excludeTags = 'div class="kode outputb"|script|style|pre|option';
Men nej det virker ikke.
Kan det rettes ?
Sidder og overvejer om jeg skal bruge <br/> overalt i mine filerne men
det bare et kæmpe arbejde både at tilføje dem nu men også når jeg skal
skrive noget i fremtiden at jeg så skal tilføje et <br/> ved hver
linieskift.
Hvordan gør i andre ?
| |
Martin Larsen (24-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 24-02-11 20:34 |
|
scootergrisen wrote:
> Men i dette tilfælde skulle der heller ikke være <br/> mellem <div
> class="kode outputb"> og </div>... altså det hele.
Altså kun den div med det pågældende classname?
> Jeg tænkte man kunne skrive :
> $excludeTags = 'div class="kode outputb"|script|style|pre|option';
> Men nej det virker ikke.
Næsten rigtigt! Der kræves dog en lidt speciel syntax for at det virker:
$excludeTags = 'div(?=\ class="kode\ outputb")|script|style|pre|option';
En vigtig detalje er at mellemrum skal escapes.
Hvis du nu vil have flere klasser med, kan du indsætte dem sådan:
(kode\ outputb|kode\ outputa) i ovenstående linje. Lodret streg betyder
"eller". Bemærk igen escape af mellemrum!
> Kan det rettes ?
Det skulle virke med ovenståede modifikation!
> Hvordan gør i andre ?
Jeg sidder faktisk med en tilsvarende problemstilling hvor en kunde selv
skal kunne opdatere et site - en slags mini cms. Og jeg bruger også en
tilsvarende løsning som her, dog lidt simplere ider han ikke skal bruge
script og andre specialtags.
Martin
| |
scootergrisen (24-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 24-02-11 22:53 |
|
> $excludeTags = 'div(?=\ class="kode\ outputb")|script|style|pre|option';
Det hjalp lidt.
Men det ser ud til den stoppe med at fjerne <br/> ved den første </div>
den møder og ikke ved den rigtige </div>.
--------------------------------------------
Dette :
--------------------------------------------
<div class="kode outputb">
<div>
<a href="javascript:playPause();">Start/Pause</a>
| <a href="javascript:makeLille();">Lille</a>
| <a href="javascript:makeNormal();">Normal</a>
| <a href="javascript:makeBig();">Stor</a>
</div> <------- den første </div> her efter fjerner den ikke mere <br/>
<br/>
<br><br/>
<br><br/>
<br/>
<video id="hiuibuoyiboo" height="226" preload="none"><br/>
<source er/big_buck_bunny.ogv" type="video/ogg" /><br/>
<source /big_buck_bunny.webm" type="video/webm" /><br/>
<source er/big_buck_bunny.mp4" type="video/mp4" /><br/>
</video></div>
</div>
--------------------------------------------
Skulle have været :
--------------------------------------------
<div class="kode outputb">
<div>
<a href="javascript:playPause();">Start/Pause</a>
| <a href="javascript:makeLille();">Lille</a>
| <a href="javascript:makeNormal();">Normal</a>
| <a href="javascript:makeBig();">Stor</a>
</div>
<br>
<br>
<video id="hiuibuoyiboo" height="226" preload="none
<source er/big_buck_bunny.ogv" type="video/ogg" />
<source /big_buck_bunny.webm" type="video/webm" />
<source er/big_buck_bunny.mp4" type="video/mp4" />
</video></div>
</div>
--------------------------------------------
| |
Martin Larsen (25-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 25-02-11 09:41 |
|
scootergrisen wrote:
> Det hjalp lidt.
>
> Men det ser ud til den stoppe med at fjerne <br/> ved den første </div>
> den møder og ikke ved den rigtige </div>.
Problemet er at du har udvidet konceptet rigtigt meget siden dit første
indlæg!
Desuden er det det du ønsker inkonsistent med hvad du først sagde, nemlig:
> Men i dette tilfælde skulle der heller ikke være <br/> mellem <div class="kode outputb"> og </div>... altså det hele.
Og i dit seneste eksempel vil du jo netop GERNE have breaks med, nemlig
umiddelbart før <video> ! Så hvad er det EGENTLIGT du ønsker?
Tilsidt, så er din opmarkering forkert:Antal <div> og </div> matcher ikke.
Martin
| |
scootergrisen (25-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 25-02-11 14:09 |
|
De 2 x <br/> i det sidste eksempel er nogen jeg selv har sat ind i den
rå tekst så de skal gerne bevares gennem det hele.
Det med at antal <div> ikke passede det mente jeg ikke var vigtigt da
det var for at vise hvor den startede med at indsætte <br/> og hvor den
stoppede.
Dette er den rå tekst inden vi gør noget :
-------------------------------------------------------
blah
blah
blah
<div class="kode outputb">
<div>
<a href="javascript:playPause();">Start/Pause</a>
| <a href="javascript:makeLille();">Lille</a>
| <a href="javascript:makeNormal();">Normal</a>
| <a href="javascript:makeBig();">Stor</a>
</div>
<br>
<br>
<video id="hiuibuoyiboo" height="226" preload="none">
<source er/big_buck_bunny.ogv" type="video/ogg" />
<source /big_buck_bunny.webm" type="video/webm" />
<source er/big_buck_bunny.mp4" type="video/mp4" />
</video>
</div>
blah
blah
blah
------------------------------------------------------------
Det skulle gerne blive til :
-------------------------------------------------------------
blah<br/>
blah<br/>
blah<br/>
<br/>
<div class="kode outputb">
<div>
<a href="javascript:playPause();">Start/Pause</a>
| <a href="javascript:makeLille();">Lille</a>
| <a href="javascript:makeNormal();">Normal</a>
| <a href="javascript:makeBig();">Stor</a>
</div>
<br>
<br>
<video id="hiuibuoyiboo" height="226" preload="none">
<source er/big_buck_bunny.ogv" type="video/ogg" />
<source /big_buck_bunny.webm" type="video/webm" />
<source er/big_buck_bunny.mp4" type="video/mp4" />
</video>
</div><br/>
blah<br/>
blah<br/>
blah<br/>
<br/>
------------------------------------------------------------
Men istedet bliver det sådan :
-------------------------------------------------------------
blah<br/>
blah<br/>
blah<br/>
<br/>
<div class="kode outputb">
<div>
<a href="javascript:playPause();">Start/Pause</a>
| <a href="javascript:makeLille();">Lille</a>
| <a href="javascript:makeNormal();">Normal</a>
| <a href="javascript:makeBig();">Stor</a>
</div>
<br/>
<br><br/>
<br><br/>
<br/>
<video id="hiuibuoyiboo" height="226" preload="none"><br/>
<source er/big_buck_bunny.ogv" type="video/ogg" /><br/>
<source /big_buck_bunny.webm" type="video/webm" /><br/>
<source er/big_buck_bunny.mp4" type="video/mp4" /><br/>
</video><br/>
</div><br/>
blah<br/>
blah<br/>
blah<br/>
<br/>
| |
Martin Larsen (26-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 26-02-11 22:49 |
|
scootergrisen wrote:
> Det skulle gerne blive til :
<klip>
Ok, som jeg ser det er der to udfordringer:
1. Eksisterende <br> skal bevares
2. Du vil udelukke <div class="kode outputb"> ... </div> selv om der er
indlejrede div.
Korrekt?
Nr. 1 er let.
Nr. 2 er svært. Ok, 2 niveuaer som nu vil være let nok, men så får du
pludselig brug for endnu et niveau, og så dur det alligevel ikke.
Jeg vil derfor foreslå et alternativ: Ud over de almindelig regler som
gælder nu (dvs. lav ikke <br> mellem udvalgte tags i ét niveau) så
indfør en særlig kommentar-tag som fortolkes af koden, fx
<!--ignore -->
<div class="kode outputb">
.....
</div>
<!--ignore -->
Dvs. alt mellem ignore-par bliver ikke behandlet af koden. Taggens
konkrete udforming er hip som hap, det kunne også være ignore-start og
ignore-slut etc.
Med andre ord vil programmet gør som nu og vil der ud over ignorere
visse afsnit helt.
Hvis du er tilfreds med en sådan løsning skal jeg gerne udvide koden for
dig, ellers er der ingen vej uden om en parser.
Martin
| |
scootergrisen (26-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 26-02-11 23:13 |
|
Yep det er korrekt det hele du skriver og en løsning med...
> <!--ignore -->
> <div class="kode outputb">
> ....
> </div>
> <!--ignore -->
....lyder fint.
Jeg ville fortrække at i stedet for at <br/> blev sat ind over alt også
efterfølgende fjernet de steder den skal fjernes så ville jeg hellere
have at <br/> kun blev sat ind der hvor den skal sættes ind.
Det kan godt være jeg ikke har været speciel god til at forklare hvordan
jeg skulle prøve koden og til hvad men det har heller ikke være så let
at gennemskue fordi koden skal virke i mange tilfælde og prøvede at
forklare det på en simpel måde.
Jeg aner simpelthen ikke en skid om parser.
Men det kunne da være en var en god ide i fremtiden.
Hvad er det smarte ved en parser hvad end det er og er der egentligt
nogen grund til at bruge det når jeg kan bruge PHP server side til at
lave alt HTML koden ?
Hvis det her er noget XML kode :
<contentelements>
<contentelement type="text">Hej og velkommen</contentelement>
<contentelement type="javascript">var x = 10;
document.write(x);
</contentelement>
<contentelement type="text">Bla bla</contentelement>
</contentelements>
Hvor bestemmer man så hvordan teksten skal vises ? Altså hvor der skal
sættes <br/> ind og hvor der ikke skal.
Hvis jeg af og til støder på en .xml fil så giver det ikke mening for
mig fordi man ser jo bare koden også står der noget i stil med at der
ikker er nogen style til filen.
| |
Martin Larsen (26-02-2011)
| Kommentar Fra : Martin Larsen |
Dato : 26-02-11 23:42 |
|
scootergrisen wrote:
> Yep det er korrekt det hele du skriver og en løsning med...
<klip>
> ...lyder fint.
Godt så. Skal lave noget kode til dig en af dagene. Vi holder 3-års
fødseldag for vores datter i morgen :)
> Jeg ville fortrække at i stedet for at <br/> blev sat ind over alt også
> efterfølgende fjernet de steder den skal fjernes så ville jeg hellere
> have at <br/> kun blev sat ind der hvor den skal sættes ind.
Der er faktisk ingen forskel. Slutresultatet er det samme.
Lige nu er der en forskel, men det er fordi jeg ikke var klar over at
der ville forekomme eksisterende <br> i koden. Det nævnte jeg allerede i
mit først indlæg. Det er dog let at tage hensyn til.
> Jeg aner simpelthen ikke en skid om parser.
> Men det kunne da være en var en god ide i fremtiden.
> Hvad er det smarte ved en parser hvad end det er og er der egentligt
> nogen grund til at bruge det når jeg kan bruge PHP server side til at
> lave alt HTML koden ?
En parser har intet med specielt XML at gøre. Jovist kan man parse XML,
men man kan også parse madopskrifter.
PHP indeholder en parser der behandler din php-kode og kontrollerer at
den er syntaktisk korrekt. Så til normal kodning har du ikke noget at
bruge en parser til.
Men her vil du behandle/fortolke et *andet* sprog, nemlig HTML, og så
kommer en parser ind i billedet. Man kan sige at parseren "forstår" den
pågældende kode.
Meget kort fortalt virker de fleste parsere som tilstandsmaskine. Dvs.
når den møder fx en <div> starter der en bestemt tilstand hvor der
gælder bestemt regler, og disse gælder indtil den afsluttende </div>
mødes. Kommer der er ny <div> ind i mellem, proppes den på stakken og
behandles osv. Birgers eksempel i starten af tråden er en yderst simpel
tilstandmaskine der kun tester for <script>.
Jeg har selv brugt parsere (fx PHP SimpleXML der trods navnet er fin til
at parse HTML) ved screenscraping, dvs. at snuppe data fra hjemmesider
og bruge i anden sammenhæng. Jeg bruger dog mest regex til dette.
Til dit brug vil det dog være et stort maskineri at sætte i gang, især
hvis du kan bruge ignore-løsningen.
| |
scootergrisen (02-03-2011)
| Kommentar Fra : scootergrisen |
Dato : 02-03-11 16:18 |
|
Du har ikke fundet på nogen løsning endnu vel ?
| |
Martin Larsen (02-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 02-03-11 22:30 |
|
scootergrisen wrote:
> Du har ikke fundet på nogen løsning endnu vel ?
Jo. Det kommer i morgen. Har ikke haft tid.
| |
scootergrisen (02-03-2011)
| Kommentar Fra : scootergrisen |
Dato : 02-03-11 22:52 |
|
Den 02-03-2011 22:30, Martin Larsen skrev:
> scootergrisen wrote:
>
>> Du har ikke fundet på nogen løsning endnu vel ?
>
> Jo. Det kommer i morgen. Har ikke haft tid.
ok tænkte bare det kunne være jeg havde overset det fordi der var mange
tråde.
| |
Martin Larsen (03-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 03-03-11 20:59 |
|
scootergrisen wrote:
> ok tænkte bare det kunne være jeg havde overset det fordi der var mange
> tråde.
Ja den er blevet ganske lang :)
Men her er resultatet. Du kan se og prøve det her:
http://www.kreacom.dk/test/br-test.php
http://www.kreacom.dk/test/br-test.php.txt
http://www.kreacom.dk/test/br-tekst
Jeg har brugt din seneste råtekst som eksempel, bortset fra at jeg
indsat <!--ignore--> tags. Og resultatet ser ud til at give det du ønsker.
Programmet bevarer eksisterende <br/>.
<?
$html = file_get_contents('br-tekst');
$excludeTags = 'div(?=\ class="(kode\ outputb|kode\
outputa)")|script|style|pre|option'; // Mellem disse tags skal der ikke
være <br/>
$regex = <<<EOD
<!--ignore\-->.*?<!--ignore--> # Ignorer mellem disse to kommentarpar
(?:<<br/>>)? # Fjern trailing <<br/>>
| # Eller ...
<($excludeTags)[^>]*>.*?</\\1> # Her matches der mellem excludeTags, fx
<pre>abc</pre>
(?:<<br/>>)? # Fjern trailing <<br/>>
| # Eller ...
<\\?php.*?\\?> # Match mellem php-tags
(?:<<br/>>)? # og fjern igen trailing <<br/>>
EOD;
// Først erstat ALLE newlines med <<br/>>:
$html = str_replace("\n", "<<br/>>\n", $html);
// Så fjern de overflødige <</br>> mellem udvalgte tags:
$html = preg_replace_callback("%$regex%isx", 'mycallback', $html);
// Lav nu <<br/>> om til det korrekte <br/>
$html = str_replace('<<br/>>', '<br/>', $html);
// Udskriv med html-entititer så vi kan se resultatet
echo '<pre>', htmlspecialchars($html), '</pre>';
function mycallback($matches) {
return str_replace('<<br/>>', '', $matches[0]);
}
?>
| |
scootergrisen (03-03-2011)
| Kommentar Fra : scootergrisen |
Dato : 03-03-11 22:17 |
|
Tak for du har gidet og bruge alt den tid på at lave det.
Det ser umiddelbart ud til jeg endelig har fået en løsning og slipper
for at skrive <br/> over alt manuelt.
Jeg prøver lige og teste det mere også vender jeg tilbage.
| |
Andreas Andersen (27-02-2011)
| Kommentar Fra : Andreas Andersen |
Dato : 27-02-11 00:31 |
|
Den 26-02-2011 23:12, scootergrisen skrev:
> Yep det er korrekt det hele du skriver og en løsning med...
>
> > <!--ignore -->
> > <div class="kode outputb">
> > ....
> > </div>
> > <!--ignore -->
>
> ...lyder fint.
>
> Jeg ville fortrække at i stedet for at <br/> blev sat ind over alt også
> efterfølgende fjernet de steder den skal fjernes så ville jeg hellere
> have at <br/> kun blev sat ind der hvor den skal sættes ind.
Du kunne have jo sat de <br /> ind manuelt 100 gange nu Hvad med
bare at have <br /> i udklipsholderen, når du skriver dine tekstfiler?
Eller indsætte f.eks. _ i stedet for <br /> og køre søg/erstat
efterfølgende?
--
Andreas
| |
scootergrisen (27-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 27-02-11 01:50 |
|
> Du kunne have jo sat de <br /> ind manuelt 100 gange nu Hvad med
> bare at have <br /> i udklipsholderen, når du skriver dine tekstfiler?
> Eller indsætte f.eks. _ i stedet for <br /> og køre søg/erstat
> efterfølgende?
>
Det handler ik kun om at sætte dem ind nu men også alt det jeg skal
skrive i fremtiden.
Og nej jeg kunne ikke have sat <br/> ind 100 gange nu. Jeg har mange
filer og det er jo ikke alle steder hvor der er linieskift der er står
<br/>.
Udklipsholderen bruger jeg til andre ting.
Kunne da godt lave for eksempel F1 til at sætte <br/> eller sådan noget
men lad os sige jeg skal kopier noget ind som ikke har <br/> så skal jeg
sidde og indsætte det hver gang. Beværligt.
Jeg ville bare gerne have at teksten stod helt normalt i kildekoden
inden den kommer igennem PHP.
Og det virker jo også næsten som jeg vil have det.
Mangler bare lige det sidste.
Jeg bare ikke så god til regulære udtryk så ved ikke hvordan man laver
det selv jeg har brugt det nogen gange og ved at det kan være rigtig
nyttigt.
| |
Andreas Andersen (27-02-2011)
| Kommentar Fra : Andreas Andersen |
Dato : 27-02-11 09:28 |
|
Den 27-02-2011 01:49, scootergrisen skrev:
> Det handler ik kun om at sætte dem ind nu men også alt det jeg skal
> skrive i fremtiden.
>
> Og nej jeg kunne ikke have sat <br/> ind 100 gange nu. Jeg har mange
> filer og det er jo ikke alle steder hvor der er linieskift der er står
> <br/>.
>
> Udklipsholderen bruger jeg til andre ting.
> Kunne da godt lave for eksempel F1 til at sætte <br/> eller sådan noget
> men lad os sige jeg skal kopier noget ind som ikke har <br/> så skal jeg
> sidde og indsætte det hver gang. Beværligt.
>
> Jeg ville bare gerne have at teksten stod helt normalt i kildekoden
> inden den kommer igennem PHP.
Undskyld jeg bliver ved at stille spørgsmål, men det virker forkert, det
du har gang i. Der er et par ting, der undrer mig lidt:
1) Når jeg skriver HTML, har jeg ikke ret meget brug for <br /> i selve
teksten, den flyder af sig selv. Så det er kun, når jeg skal skifte
afsnit, og der bruger jeg som regel <p></p>. Hvorfor har du så mange <br
/>? Det eneste tilfælde jeg lige kan komme på, er hvis du viser digte
eller sange på dine sider.
2) Det lyder som om, du vil have PHP til at lave den her erstatning,
hver eneste gang, der skal serveres en side. Jeg ville vælge at generere
siderne med <br />, hver gang du har lavet ændringer i stedet, så det
kun skal gøres én gang.
I forhold til Martins forslag med <!-- ignore --> ville jeg nok
foretrække at vende den om, så jeg markerede det, der faktisk skulle ske
noget med, fremfor det der skal ignoreres, men det er jo en smagssag.
En anden mulighed er at bruge pre-tagget og sætte fonten, så den ikke er
fixed-width.
..poetry { font-family: Arial;
font-size: 12px; }
<pre class="poetry">
Roses are red
Violets are blue
</pre>
--
Andreas
| |
scootergrisen (27-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 27-02-11 20:33 |
|
> 1) Når jeg skriver HTML, har jeg ikke ret meget brug for <br /> i selve
> teksten, den flyder af sig selv.
Hvis der er meget tekst så kan det godt blive for kompakt.
Der var en som skrev at han syns der skulle være mere rum mellem teksten
eller sådan noget. Og han lavede linieskift eller mellerum når der var 2
linier.
Jeg syns teksten er lettere at læse hvis der er noget mellemrum istedet
for det står ud i et som i en bog.
> Så det er kun, når jeg skal skifte
> afsnit, og der bruger jeg som regel <p></p>. Hvorfor har du så mange <br
> />?
For at lave lidt plads i teksten og alt muligt andet.
Det kan vel være det samme at bruge <br/> som at bruge <p></p> eller ?
Det så bare lettere at sige erstat newline med newline+<br/>
> Det eneste tilfælde jeg lige kan komme på, er hvis du viser digte
> eller sange på dine sider.
> 2) Det lyder som om, du vil have PHP til at lave den her erstatning,
> hver eneste gang, der skal serveres en side. Jeg ville vælge at generere
> siderne med <br />, hver gang du har lavet ændringer i stedet, så det
> kun skal gøres én gang.
Så ville det måske gå hurtigere at loade siderne men sikkert også
besværligt at lave.
Lad os sige der skal kaldes 5 filer for at genere en HTML fil så skal
man vel checke dato/tid på de 5 filerne og sammenligne med dato/tid som
man så skal gemme et sted for sidste gang HTML filen blev genereret.
Eller hvordan skulle PHP ellers vide hvornår jeg sidst har lavet ændringen ?
> I forhold til Martins forslag med <!-- ignore --> ville jeg nok
> foretrække at vende den om, så jeg markerede det, der faktisk skulle ske
> noget med, fremfor det der skal ignoreres, men det er jo en smagssag.
Umiddelbart tror jeg det er lettest at bruge ignore fordi jeg skal
næsten altid have <br/>. Så hvis jeg bruger ignore skal jeg ikke skrive
det så mange steder som hvis jeg valgte at gøre det omvendt.
> En anden mulighed er at bruge pre-tagget og sætte fonten, så den ikke er
> fixed-width.
>
> .poetry { font-family: Arial;
> font-size: 12px; }
>
> <pre class="poetry">
> Roses are red
> Violets are blue
> </pre>
Det kan jeg ikke forstille mig er godt.
Hvis så med lange linier ?
| |
Andreas Andersen (28-02-2011)
| Kommentar Fra : Andreas Andersen |
Dato : 28-02-11 07:06 |
|
Den 27-02-2011 20:33, scootergrisen skrev:
> Så ville det måske gå hurtigere at loade siderne men sikkert også
> besværligt at lave.
Det kan også sagtens være, det er overkill. Jeg ved ikke, hvor stort dit
site er.
> Lad os sige der skal kaldes 5 filer for at genere en HTML fil så skal
> man vel checke dato/tid på de 5 filerne og sammenligne med dato/tid som
> man så skal gemme et sted for sidste gang HTML filen blev genereret.
> Eller hvordan skulle PHP ellers vide hvornår jeg sidst har lavet
> ændringen ?
Det var da en mulighed. Ellers kunne du evt. lave et lille
php-administrationsmodul, hvor du kunne paste sideteksterne, hver gang
du havde rettet i dem og der få den til at foretage rettelserne.
>> I forhold til Martins forslag med <!-- ignore --> ville jeg nok
>> foretrække at vende den om, så jeg markerede det, der faktisk skulle ske
>> noget med, fremfor det der skal ignoreres, men det er jo en smagssag.
>
> Umiddelbart tror jeg det er lettest at bruge ignore fordi jeg skal
> næsten altid have <br/>. Så hvis jeg bruger ignore skal jeg ikke skrive
> det så mange steder som hvis jeg valgte at gøre det omvendt.
Det er jo også ligeså fint, så længe du kun har én type tekst, der skal
gøres noget ved. Hvis du udvidede med en ny type tekst, der skulle ske
noget andet med, ville du være nødt til at lave det om.
>> En anden mulighed er at bruge pre-tagget og sætte fonten, så den ikke er
>> fixed-width.
>>
>> .poetry { font-family: Arial;
>> font-size: 12px; }
>>
>> <pre class="poetry">
>> Roses are red
>> Violets are blue
>> </pre>
>
> Det kan jeg ikke forstille mig er godt.
> Hvis så med lange linier ?
Det dur ikke til lange linjer. Det var ment som forslag, hvis dine mange
<br /> var fordi din side omhandlede sange, bageopskrifter eller
lignende, du pastede ind.
--
Andreas
| |
scootergrisen (28-02-2011)
| Kommentar Fra : scootergrisen |
Dato : 28-02-11 08:26 |
| | |
Jørn Andersen (01-03-2011)
| Kommentar Fra : Jørn Andersen |
Dato : 01-03-11 05:11 |
|
On Sun, 27 Feb 2011 20:33:29 +0100, scootergrisen
<scootergrisen@NOSPANKYOUgmail.com> wrote:
>For at lave lidt plads i teksten og alt muligt andet.
>Det kan vel være det samme at bruge <br/> som at bruge <p></p> eller ?
Betydningsmæssigt er det to vidt forskellige ting: <p> markerer et
afsnit - uanset om det vises på en skærm, læses op for binde og
svagtseende eller hvilken medietype det i øvrigt behandles af.
Det er rigtigt, at det på en skrivemaskine er stort set det samme, men
ikke i HTML.
Mvh. Jørn
--
Jørn Andersen
socialister.dk
marxisme.dk
| |
scootergrisen (01-03-2011)
| Kommentar Fra : scootergrisen |
Dato : 01-03-11 05:18 |
|
Den 01-03-2011 05:11, Jørn Andersen skrev:
> On Sun, 27 Feb 2011 20:33:29 +0100, scootergrisen
> <scootergrisen@NOSPANKYOUgmail.com> wrote:
>
>> For at lave lidt plads i teksten og alt muligt andet.
>> Det kan vel være det samme at bruge<br/> som at bruge<p></p> eller ?
>
> Betydningsmæssigt er det to vidt forskellige ting:<p> markerer et
> afsnit - uanset om det vises på en skærm, læses op for binde og
> svagtseende eller hvilken medietype det i øvrigt behandles af.
>
> Det er rigtigt, at det på en skrivemaskine er stort set det samme, men
> ikke i HTML.
>
> Mvh. Jørn
>
Jeg bruger overhovedet (næste) ikke <p></p> på min hjemmeside.
Giver det så en lidt længere pause i en skærmoplæser eller hvad ?
Er der nogen grund til jeg skulle begynde at bruge <p></p> i stedet for
<br/> ?
Hvis jeg skal omgive noget så bruger jeg <div></div> og det giver så
også et linieskift eller det der svare til det ligesom <p></p>.
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 09:54 |
|
scootergrisen wrote:
> Er der nogen grund til jeg skulle begynde at bruge <p></p> i stedet for
> <br/> ?
Almindeligvis er der ikke den store forskel mellem <br> og <p>. Men der
er den forskel at <p> er et block blokelement, hvilket betyder at du kan
sætte margin padding mm. på det. Med andre ord kan du finjustere hvor
meget luft der skal være mellem afsnittene.
Jeg bruger i øvrigt også mest <br>, men jeg gør noget andet end dig. Jeg
definerer simpelthen 2 x linjeskift som et <br>, altså en tom linje. Det
har nemlig også den fordel at du kan bruge linjeskift i html-koden til
at gøre den mere overskuelig uden at det af den grund skaber linjeskift
i den færdige tekst.
Men kunne også definere 3 x linjeskift = <br>.
Martin
| |
Anonymous (01-03-2011)
| Kommentar Fra : Anonymous |
Dato : 01-03-11 10:03 |
|
Den 01-03-2011 09:53, Martin Larsen skrev:
> scootergrisen wrote:
>
>> Er der nogen grund til jeg skulle begynde at bruge <p></p> i stedet for
>> <br/> ?
>
> Almindeligvis er der ikke den store forskel mellem <br> og <p>.
Jo.
> Men der
> er den forskel at <p> er et block blokelement, hvilket betyder at du kan
> sætte margin padding mm. på det. Med andre ord kan du finjustere hvor
> meget luft der skal være mellem afsnittene.
De har ikke samme betydning overhovedet.
> Jeg bruger i øvrigt også mest <br>, men jeg gør noget andet end dig. Jeg
> definerer simpelthen 2 x linjeskift som et <br>, altså en tom linje. Det
> har nemlig også den fordel at du kan bruge linjeskift i html-koden til
> at gøre den mere overskuelig uden at det af den grund skaber linjeskift
> i den færdige tekst.
Det er forkert, hvis det er rent visuelt.
> Men kunne også definere 3 x linjeskift = <br>.
Det kunne man, og det er også forkert. Rent udseende skal laves med CSS.
MVH
Rune Jensen
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 10:47 |
|
Anonymous wrote:
>> Almindeligvis er der ikke den store forskel mellem <br> og <p>.
>
> Jo.
Jeg mener rent visuelt. Det er det grisen har givet udtryk for. Du kan
ikke ved et kig på en hjemmeside se om der er brugt <br> eller <p> !
> De har ikke samme betydning overhovedet.
Nej, men de har samme visuelle funktion.
>> Jeg bruger i øvrigt også mest <br>, men jeg gør noget andet end dig. Jeg
>> definerer simpelthen 2 x linjeskift som et <br>, altså en tom linje. Det
>> har nemlig også den fordel at du kan bruge linjeskift i html-koden til
>> at gøre den mere overskuelig uden at det af den grund skaber linjeskift
>> i den færdige tekst.
>
> Det er forkert, hvis det er rent visuelt.
Der er mere til historien. 2 x linjeskift bliver af php-koden behandlet
til at give enten <br> eller <p> alt efter hvad jeg nu ønsker.
Så det ender altså med at blive styret af CSS som du skriver!
Sagen er den at kunderne ikke er glade for html-koder, de vil gerne
kunne skrive ren tekst. Og det har jeg så gjort muligt for dem, og det
virker fortrinligt.
Med andre ord er N x linjeskift bare en simpel opmarkering.
| |
Anonymous (01-03-2011)
| Kommentar Fra : Anonymous |
Dato : 01-03-11 10:56 |
|
Den 01-03-2011 10:46, Martin Larsen skrev:
> Sagen er den at kunderne ikke er glade for html-koder, de vil gerne
> kunne skrive ren tekst. Og det har jeg så gjort muligt for dem, og det
> virker fortrinligt.
Det gør det ikke mere rigtigt.
Og jo, man kan bestemt se forskel. Du har måske en idé om, at blinde
ikke kan læse eller navigere hjemmesider - dette er ikke rigtigt. De kan
læse siden, hvis den er korrekt opmærket, og såmænd få betydningen med
også-
En <p> har betydning. Det har en tekst, som hænger og svæver uden
opmærkning ikke. Den kan gøre, man mister betydning, at man misforstår
indholdet, og den kan gøre det sværere at navigere.
Du kan da have din mening, og det er helt fint vi lever i et frit land,
men som sagt, den er ikke korrekt.
MVH
Rune Jensen
| |
Anonymous (01-03-2011)
| Kommentar Fra : Anonymous |
Dato : 01-03-11 11:06 |
|
Den 01-03-2011 10:56, Anonymous skrev:
> Du kan da have din mening, og det er helt fint vi lever i et frit land,
> men som sagt, den er ikke korrekt.
Og hvad jeg mener er - sålænge det kun går ud over dig og dine kunder,
fint med mig. Men ikke forsøge at lære andre herinde noget, som ikke er
korrekt.
MVH
Rune Jensen
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 11:26 |
|
Anonymous wrote:
> Og hvad jeg mener er - sålænge det kun går ud over dig og dine kunder,
> fint med mig. Men ikke forsøge at lære andre herinde noget, som ikke er
> korrekt.
Se svaret lige før. Du har misforstået mig. Det hele ender i korrekt
html på mine kunders side.
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 11:25 |
|
Hej Rune
>> Sagen er den at kunderne ikke er glade for html-koder, de vil gerne
>> kunne skrive ren tekst. Og det har jeg så gjort muligt for dem, og
>> det virker fortrinligt.
> Det gør det ikke mere rigtigt.
Jo. For du har vist helt misforstået mig!
Først, jeg kender udmærket til den semantiske forskel mellem <br>, <p>,
<hX> osv.
Jeg har gjort sådan at 2 x linjeskift i kundens *råtekst* oversættes til
<p> i html-koden af en pre-processor. Og vupti: så er det både visuelt,
syntaktisk og semantisk korrekt. Du overså vist der hvor jeg skrev at
jeg brugte linjeskift som en simpel opmarkering.
Det er lidt ligesom med bbs-koder: [b] og [i] osv. Det er ikke html, men
det ender det med at blive.
Længere er den ikke.
Så vi er altså enige.
> Og jo, man kan bestemt se forskel. Du har måske en idé om, at blinde
> ikke kan læse eller navigere hjemmesider - dette er ikke rigtigt. De kan
> læse siden, hvis den er korrekt opmærket, og såmænd få betydningen med
> også-
Her er vi også enige. Men nu skrev jeg "SE" forskel. Grisen gav udtryk
for at det kun var vigtigt hvordan det SÅ ud, og så skrev jeg ganske
korrekt at der i *det tilfælde* ikke er den store forskel på <br> og <p>.
Men alle dine andre grunde er fuldstændig valide, og scootergrisen bør
gøre det rigtigt når han nu skriver om html.
> Du kan da have din mening, og det er helt fint vi lever i et frit land,
> men som sagt, den er ikke korrekt.
Nu er meninger jo per definition hverken korrekte eller ukorrekte
Men i øvrigt er vi jo enige.
Martin
| |
Anonymous (01-03-2011)
| Kommentar Fra : Anonymous |
Dato : 01-03-11 11:39 |
|
Den 01-03-2011 11:24, Martin Larsen skrev:
> Hej Rune
>
> >> Sagen er den at kunderne ikke er glade for html-koder, de vil gerne
> >> kunne skrive ren tekst. Og det har jeg så gjort muligt for dem, og
> >> det virker fortrinligt.
>
> > Det gør det ikke mere rigtigt.
>
> Jo. For du har vist helt misforstået mig!
>
> Først, jeg kender udmærket til den semantiske forskel mellem <br>, <p>,
> <hX> osv.
>
> Jeg har gjort sådan at 2 x linjeskift i kundens *råtekst* oversættes til
> <p> i html-koden af en pre-processor. Og vupti: så er det både visuelt,
> syntaktisk og semantisk korrekt. Du overså vist der hvor jeg skrev at
> jeg brugte linjeskift som en simpel opmarkering.
>
> Det er lidt ligesom med bbs-koder: [b] og [i] osv. Det er ikke html, men
> det ender det med at blive.
>
> Længere er den ikke.
>
> Så vi er altså enige.
He. OK.
Du gør det samme som mig, så. Konverterer to linjeskift til en <p>?
Em, jeg troede du snakkede om koden, ikke om inputtet. Derefter så jeg
bare, du skrev, du brugte <br />
Det er ret smart at konvertere dobbelt linjeskift til <p>. Faktisk nok
den eneste rigtige i et CMS, hvor man må forvente at folk uden
HTML-kendskab bruger systemet.
>> Og jo, man kan bestemt se forskel. Du har måske en idé om, at blinde
>> ikke kan læse eller navigere hjemmesider - dette er ikke rigtigt. De kan
>> læse siden, hvis den er korrekt opmærket, og såmænd få betydningen med
>> også-
>
> Her er vi også enige. Men nu skrev jeg "SE" forskel. Grisen gav udtryk
> for at det kun var vigtigt hvordan det SÅ ud, og så skrev jeg ganske
> korrekt at der i *det tilfælde* ikke er den store forskel på <br> og <p>.
Jaja, OKæh....
> Men alle dine andre grunde er fuldstændig valide, og scootergrisen bør
> gøre det rigtigt når han nu skriver om html.
I rest my case...
>> Du kan da have din mening, og det er helt fint vi lever i et frit land,
>> men som sagt, den er ikke korrekt.
>
> Nu er meninger jo per definition hverken korrekte eller ukorrekte
>
> Men i øvrigt er vi jo enige.
Øhm OK :)
MVH
Rune Jensen
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 11:51 |
|
Anonymous wrote:
> Du gør det samme som mig, så. Konverterer to linjeskift til en <p>?
Jep
> Em, jeg troede du snakkede om koden, ikke om inputtet. Derefter så jeg
> bare, du skrev, du brugte <br />
Jeg skrev at jeg konverterer til <p> eller <br> afh. af konteksten. På
en bestemt side opremses nogle medvirkende på en film. Her skal der stå
et navn på hver linje, men det er samme tekstuelle afsnit så det rigtige
er her at bruge <br> fremfor <p>.
Strengt taget ville det være endnu mere korrekt at bruge <ul> og så
style det til ikke at have nogen bullet foran. Jeg tænker her på evt.
skærmlæseres fortolkning.
> Det er ret smart at konvertere dobbelt linjeskift til <p>. Faktisk nok
> den eneste rigtige i et CMS, hvor man må forvente at folk uden
> HTML-kendskab bruger systemet.
Ja, netop. På samme måde konverteres links automatisk til <a> osv. Og
han kan lave simpel styling ved bruge af //kursiv// osv.
| |
Anonymous (01-03-2011)
| Kommentar Fra : Anonymous |
Dato : 01-03-11 12:03 |
|
Den 01-03-2011 11:38, Anonymous skrev:
>>> Du kan da have din mening, og det er helt fint vi lever i et frit land,
>>> men som sagt, den er ikke korrekt.
>>
>> Nu er meninger jo per definition hverken korrekte eller ukorrekte
>>
>> Men i øvrigt er vi jo enige.
>
> Øhm OK :)
Jeg kan godt være lidt standhaftig, det er jeg klar over...
Meninger kan altid "overrules" af W3C... det plejer at være en god
rettesnor.
Her gik jeg så for hurtigt frem fordi jeg misforstod dig, det var ikke
hensigten.
MVH
Rune Jensen
| |
Birger Sørensen (01-03-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 01-03-11 12:31 |
|
Martin Larsen skrev den 01-03-2011:
8X
> Nej, men de har samme visuelle funktion.
8X
Næppe.
<br> er et linieskift - <p> er en paragraf. I øverigt er <p></p> ikke
lovligt i alle doctyper - tomme elementer er ikke tilladt (kan vist
endda fjernes af browserne, hvis de er i vejen).
Indhold i HTML, formattering i CSS og funktionalitet i scripting er
målet.
Du bruger HTML elementer til formattering. Det er hverken ifølge
standarder, eller samme retning som den øvrige udvikling på området.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 12:40 |
|
Birger Sørensen wrote:
> Indhold i HTML, formattering i CSS og funktionalitet i scripting er målet.
Ja naturligvis.
> Du bruger HTML elementer til formattering.
Nej. Og ja. Det kommer jo an på hvad du mener.
De fleste html-elementer har jo en visuel repræsentation som man sammen
med css kan udnytte til formatering. Eller bruge standardformateringen
hvis man er tilfreds med den.
Så hvis du sætter et afsnit ind i <p>tekst</p> får du en formatering,
nemlig luft omkring, alene ved at indsætte en tag. Du kan så justere
margin, padding og farver mm. efter hvad du har lyst til.
På den måde kan man ikke lave en hjemmeside uden at bruge html til
formatering, for du er simpelthen nødt til at overveje hvilket element
du skal bruge for at få et givent slutresultat.
Man skal bare ikke bruge html-tags på en forkert måde til at opnå
formatering.
Martin
| |
Birger Sørensen (01-03-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 01-03-11 13:06 |
|
Martin Larsen frembragte:
> Birger Sørensen wrote:
>
>> Indhold i HTML, formattering i CSS og funktionalitet i scripting er målet.
>
> Ja naturligvis.
>
>> Du bruger HTML elementer til formattering.
>
> Nej. Og ja. Det kommer jo an på hvad du mener.
>
> De fleste html-elementer har jo en visuel repræsentation som man sammen med
> css kan udnytte til formatering. Eller bruge standardformateringen hvis man
> er tilfreds med den.
>
> Så hvis du sætter et afsnit ind i <p>tekst</p> får du en formatering, nemlig
> luft omkring, alene ved at indsætte en tag. Du kan så justere margin, padding
> og farver mm. efter hvad du har lyst til.
>
> På den måde kan man ikke lave en hjemmeside uden at bruge html til
> formatering, for du er simpelthen nødt til at overveje hvilket element du
> skal bruge for at få et givent slutresultat.
>
> Man skal bare ikke bruge html-tags på en forkert måde til at opnå
> formatering.
>
> Martin
Nej + ja = måske?
Default værdier for formattering af HTML står i en default css.
Elementerne som sådan har ingen formattering, men de har tilknyttet et
object, de bruger til formattering. Det er - også - her, default
værdier står, og ikke i HTML elementet/objectet.
Så man bruger /aldrig/ HTML til formattering, ikke engang når man
skriver formatteringen i HTML-tagget. Værdierne lægges i CSS objectet
(der er vist nogle få undtagelser, som forhåbentlig bliver renset ud i
HTML5).
At bruge default værdier for elementerne i sit layout er selvfølgelig
en farbar vej (hvis man kan leve med at siden har lige så mange
udseender, som der er browsere der viser den). Men det er forkert at
bruge HTML til formattering. Hvilket element der skal bruges, bør
dikteres af indholdet - ikke af hvordan du vil have indholdet til at se
ud på skærmen. Du kan jo altid sætte CSS, så det bliver repræsenteret
som du ønsker det...
Et <br> er til linieskift.
Et <p> indholder teksten til en paragraf.
Hvordan et linieskift og en paragraf vises, bestemmes af CSS.
Derfor er det forkert, at bruge HTML elementer til visuel (eller anden)
formattering.
Det ser så ud til, at også jeg har misforstået. Du kan selvfølgelig
bruge den markup du ønsker til alt muligt andet. Man kan så overveje,
om det er fikst at bruge samme syntax som HTML, når slutresultatet skal
være HTML. Måske skulle du overveje noget andet... Bare min mening.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 17:23 |
|
Birger Sørensen wrote:
> Så man bruger /aldrig/ HTML til formattering, ikke engang når man
> skriver formatteringen i HTML-tagget. Værdierne lægges i CSS objectet
> (der er vist nogle få undtagelser, som forhåbentlig bliver renset ud i
> HTML5).
Det er så et spørgsmål om ord, men jeg forstår godt hvad du mener og er
i øvrigt ganske enig.
> Du kan
> jo altid sætte CSS, så det bliver repræsenteret som du ønsker det...
Ja, man kan endda lave et inline element om til et blokelement, hvis man
ønsker det, eller vise versa. Der er mange muligheder, og css er fedt!
> Et <br> er til linieskift.
> Et <p> indholder teksten til en paragraf.
Korrekt. Det er også sådan jeg bruger det. Jeg har blot gjort det muligt
for kunde at diktere det med linjeskift i nogle råtekster som bliver
inkluderet. De fleste steder bliver dobbelt linjeskift lavet om til <p>
men et enkelt sted bliver det til <br> fordi det netop skal være
linjeskift og ikke afsnit.
> Derfor er det forkert, at bruge HTML elementer til visuel (eller anden)
> formattering.
Helt enig, og derfor har jeg ikke brugt det i årevis.
> Det ser så ud til, at også jeg har misforstået. Du kan selvfølgelig
> bruge den markup du ønsker til alt muligt andet. Man kan så overveje, om
> det er fikst at bruge samme syntax som HTML, når slutresultatet skal
> være HTML. Måske skulle du overveje noget andet... Bare min mening.
Ved ikke helt hvad du mener her, men det er faktisk ganske smart at
kunden kan få tryllet noget råtekst om til velformateret (syntaktisk,
forstås) html efter nogle simple regler vi har aftalt. Som nævnt i et
andet svar minder det om bbs-koder, [b], [i] osv.
Men jeg har faktisk i sinde at fortælle kunden om de mest elementære
tags, der er vel ikke mere end 5-6 stykker han skal kender, så værre er
det jo heller ikke.
Men husk, kunden har altid ret i sidste ende! (Så kan man tænke noget
anden mens man smiler)
Martin
| |
Martin Larsen (01-03-2011)
| Kommentar Fra : Martin Larsen |
Dato : 01-03-11 20:35 |
|
Martin Larsen wrote:
> Der er mange muligheder, og css er fedt!
Kommer lige i tanke om CSS Zen Garden hvor nøjagtig den samme html
opmarkering kan ses på hundredevis af vidt forskellige måder hvor kun
stylesheetet er forskelligt.
Ganske interessant projekt.
http://www.csszengarden.com/
| |
Jørn Andersen (01-03-2011)
| Kommentar Fra : Jørn Andersen |
Dato : 01-03-11 21:19 |
|
On Tue, 01 Mar 2011 20:34:39 +0100, Martin Larsen
<martin+spamfree+larsen@bigfoot.com> wrote:
>Kommer lige i tanke om CSS Zen Garden hvor nøjagtig den samme html
>opmarkering kan ses på hundredevis af vidt forskellige måder hvor kun
>stylesheetet er forskelligt.
>
>Ganske interessant projekt.
>
> http://www.csszengarden.com/
Absolut - dog med det forbehold, at man ikke bør bruge alle de
teknikker der anvendes på CSS Zen Garden til praktisk brug.
Sitet er fantastisk til at vise, hvilken magt man har med CSS. Men
"grundreglen" er stadig, at CSS skal understøtte indholdet - ikke
fordreje og forvrænge det
Mvh. Jørn
--
Jørn Andersen
socialister.dk
marxisme.dk
| |
Birger Sørensen (01-03-2011)
| Kommentar Fra : Birger Sørensen |
Dato : 01-03-11 22:21 |
|
Jørn Andersen formulerede tirsdag:
>> Ganske interessant projekt.
>>
>> http://www.csszengarden.com/
>
> Absolut - dog med det forbehold, at man ikke bør bruge alle de
> teknikker der anvendes på CSS Zen Garden til praktisk brug.
Hvorfor dog ikke det?
> Sitet er fantastisk til at vise, hvilken magt man har med CSS. Men
> "grundreglen" er stadig, at CSS skal understøtte indholdet - ikke
> fordreje og forvrænge det
Der er ikke tale om at fordreje eller forvrænge.
Der er tale om at designe så man kan få tingene vist præcist som man
vil.
Og sitet er - selvom man måske kan se det som legetøj - lige præcis et
eksempel på, at det kan man, hvis man bruger CSS rigtigt.
Birger
--
http://varmeretter.dk - billig, sund og hurtig mad
http://bbsorensen.dk
| |
Jørn Andersen (07-03-2011)
| Kommentar Fra : Jørn Andersen |
Dato : 07-03-11 01:47 |
|
On Tue, 01 Mar 2011 22:20:33 +0100, Birger Sørensen
<sdc@bbsorensen.com> wrote:
>Jørn Andersen formulerede tirsdag:
>>> Ganske interessant projekt.
>>>
>>> http://www.csszengarden.com/
>>
>> Absolut - dog med det forbehold, at man ikke bør bruge alle de
>> teknikker der anvendes på CSS Zen Garden til praktisk brug.
>
>Hvorfor dog ikke det?
Fordi nogle af dem leverer noget, der er et andet indhold end det,
HTML-filen siger det skal være.
Hvis du fx tager:
http://www.csszengarden.com/?cssfile=/199/199.css&page=0
- så er alle oversskrifter ændret ved at skifte teksten ud med
billeder. Det er fsv. OK - hvis bare ikke billederne fortalte en helt
anden historie end den tekst, den erstatter.
>> Sitet er fantastisk til at vise, hvilken magt man har med CSS. Men
>> "grundreglen" er stadig, at CSS skal understøtte indholdet - ikke
>> fordreje og forvrænge det
>
>Der er ikke tale om at fordreje eller forvrænge.
Det mener jeg der er i ovennævnte tilfælde. Det kan godt være, de har
ryddet ud i samlingen - tidligere mener jeg at have set mange flere,
der også brugte tekst-erstatning i et omfang, så det skabte et helt
andet indhold. Men lige nu kan jeg ikke på 5 min. finde nogen
>Der er tale om at designe så man kan få tingene vist præcist som man
>vil.
>Og sitet er - selvom man måske kan se det som legetøj - lige præcis et
>eksempel på, at det kan man, hvis man bruger CSS rigtigt.
Min lille kritik skal ikke forstås sådan, at jeg ikke synes CSS Zen
Garden er et fantastisk sted. Det forhindrer mig bare ikke i at mene,
at hvis form (i nogle af eksempelerne) bliver vigtigere end indhold,
så er man på galt spor.
Mvh. Jørn
--
Jørn Andersen
socialister.dk
marxisme.dk
| |
Anonymous (01-03-2011)
| Kommentar Fra : Anonymous |
Dato : 01-03-11 10:00 |
|
Den 01-03-2011 05:17, scootergrisen skrev:
> Jeg bruger overhovedet (næste) ikke <p></p> på min hjemmeside.
> Giver det så en lidt længere pause i en skærmoplæser eller hvad ?
Det forringer en blinds mulighed for at navigere hver gang man bruger
tags forkert.
> Er der nogen grund til jeg skulle begynde at bruge <p></p> i stedet for
> <br/> ?
Ja. Brug <p> hvor du har afsnit. <br /> er til hård retur/linjeskift,
som != <p>.
> Hvis jeg skal omgive noget så bruger jeg <div></div> og det giver så
> også et linieskift eller det der svare til det ligesom <p></p>.
Nej. <div> giver ingen ekstra betydning. Det gør <p> idét den fortæller,
at det omsluttede er et afsnit.
Det er forkert at bruge <div> hvor et andet tag er mere sigende, ligesom
det er forkert at adskille linjer med <br /> hvis det ikke har betydning
for indholdet.
Hvis man visuelt skal bruge en afstand, bør bruges margin og padding i
CSS ved styling på det element, som skal have afstanden, ikke <br />.
<br /> kan bruges andre steder, hvor det er vigtigt for indholdet, der
er hårde linjeskift. F.eks. ved en kodelisting, hvor adskillelse af
linjerne i koden har betydning for indholdet. Dvs. f.eks. i en <code>.
På samme måde er det med hårde mellemrum . De må også kun bruges,
hvor de har betydning for indholdet (digte eller kodelistinger er hvad
jeg lige kan komme på).
MVH
Rune Jensen
| |
Anonymous (01-03-2011)
| Kommentar Fra : Anonymous |
Dato : 01-03-11 10:31 |
|
Den 01-03-2011 05:11, Jørn Andersen skrev:
> On Sun, 27 Feb 2011 20:33:29 +0100, scootergrisen
> <scootergrisen@NOSPANKYOUgmail.com> wrote:
>
>> For at lave lidt plads i teksten og alt muligt andet.
>> Det kan vel være det samme at bruge<br/> som at bruge<p></p> eller ?
>
> Betydningsmæssigt er det to vidt forskellige ting:<p> markerer et
> afsnit - uanset om det vises på en skærm, læses op for binde og
> svagtseende eller hvilken medietype det i øvrigt behandles af.
>
> Det er rigtigt, at det på en skrivemaskine er stort set det samme, men
> ikke i HTML.
Det er jo netop det smarte ved HTML, at du kan rykke det fra ét medie
til et andet, og det vil beholde sin betydning. Hvis ellers begge medier
forstår HTML. F.eks. en skærmlæser.
På papir, f.eks. en avis, skal man visuelt "gætte" sig til betydningen
udfra typer, skrifstørrelse og placering. Man kan ikke umiddelbart
flytte det visuelle over i et andet medie, uden det mister betydning.
Særligt skærmlæsere vil have de problemer. Søgebotter og
indekseringsprogrammer er et andet eksempel i forbindelse med web.
Den første tekst i en artikel, som står øverst, og med store typer, vil
en seende "oversætte" til en overskrift. Flyttes den samme tekst til
andet medie, vil det bare være en tekst. Man kan ikke sige, om det er
overksrift eller afsnit eller noget helt tredje. Det kan skærmlæseren
eller søgebotten heller ikke uden korrekt formattering.
MVH
Rune Jensen
| |
Mads Lie Jensen (27-02-2011)
| Kommentar Fra : Mads Lie Jensen |
Dato : 27-02-11 11:19 |
| | |
|
|