2010-12-08 9 views
4

EDIT:Ein unerklärlicher Platz im Inneren Anker hinzugefügt!

Nein. Ignoriere das. Der Platz wird vom Browser dorthin gelegt.


Dies ist ein HTML-Schnipsel aus meiner Anwendung:

Correct answers: 
    0/6<br /><br /> 
    You have failed to pass the final test. 

    <a href="/module/controller/course/id/5" class="accessible-link"> 
     Click here 
    </a> 
    to return to the training. 

Wie Sie sehen können, gibt es einen einzigen Raum nach dem schließenden Tag. Im Browser wird der Speicherplatz jedoch innerhalb des Ankers hinzugefügt. So sieht es wie folgt aus:

alt text

Dies ist der PHP-Code, der die HTML erzeugt:

<?php if (isset($this->correctAnswersCount) && isset($this->answersCount)): ?> 
     <?php echo Zend_Registry::get('translate')->_('Počet správnych odpovedí'); ?>: 
     <?php echo ToHtml($this->correctAnswersCount); ?>/<?php echo ToHtml($this->answersCount); ?><br /><br /> 
<?php endif; ?> 
     <?php echo Zend_Registry::get('translate')->_('Záverečný test sa vám nepodarilo úspešne absolvovať.'), "\n"; ?> 
     <a href="<?php echo ToHtml($this->backToCourseUri); ?>" class="accessible-link"> 
      <?php echo Zend_Registry::get('translate')->_('Kliknite'), "\n"; ?> 
     </a> 
     <?php echo Zend_Registry::get('translate')->_('pre návrat do kurzu.'), "\n"; ?> 

ich vollständig von dieser buffled bin und kann nicht herausfinden, was das verursacht hat, obwohl ich habe seit 30 Minuten in den Code starrte.

Dies ist ein relavant Teil aus der Übersetzungsdatei:

'Kliknite' => 'Click here', 

Wie Sie sehen können, sollte es keinen Raum, der von Zend_Translate hinzugefügt werden.

+0

@mario gibt es keinen Platz. Der Zeilenumbruch und der Tabstopp werden nur als Eins dargestellt. Und ich bezweifle, dass es in HTML5 nicht da sein wird (was sowieso Tag-Suppe ist). – Gordon

+0

@mario Ich weiß das. Aber zwischen und ist kein Platz. Der Platz ist nach dem schließenden Tag. –

Antwort

3

ändern diese:

<a href="<?php echo ToHtml($this->backToCourseUri); ?>" class="accessible-link"> 
    <?php echo Zend_Registry::get('translate')->_('Kliknite'), "\n"; ?> 
</a> 

In diese:

<a href="<?php echo ToHtml($this->backToCourseUri); ?>" class="accessible-link"> 
    <?php echo Zend_Registry::get('translate')->_('Kliknite'), "\n"; ?></a> 

Die </a> sollte in derselben Zeile stehen, nachdem der <?php echo Zend_Registry::get('translate')->_('Kliknite'), "\n"; ?> aka Hier klicken

EDIT:

Die neue Zeile und die Leerzeichen danach rendert wie 1 Leerzeichen, die immer noch in de <a></a> Tags, das ist, wo die Leerstelle herkommt.

EDIT2:

Für die Aufzeichnung Ich mag es nicht auch der End-Tag in einer neuen Zeile anstelle einem Wesen mit dem Inhalt der nächsten sein, aber das ist, wie es zu arbeiten, um zu tun ist korrekt.

Ich mag gut formatierten Code und ich suche immer nach einem Autoformat-Befehl in meiner IDE.

Aber zumindest zum Beispiel in Visual Studio, wenn Sie schlagen Ctrl + K, Ctrl + D (das Format Dokument shorcut) die schließenden Tags wie die </a> bewegt werden nicht automatisch in eine neue Zeile Aus genau diesem Grund: Es sollte nicht so aussehen, wie es vor dem Autoformat aussieht.

+0

Ja, es funktioniert so. Aber ich möchte öffnende Tags, Anker und schließende Tags in separaten Zeilen haben, um sauberere HTML-Vorlagen zu erhalten. –

+0

Aber du kannst es nicht so machen, da ** DU ** derjenige ist, der den zusätzlichen Platz in deinen Code steckt. Die Whitespaces (die neue Zeile und die Leerzeichen danach) werden alle zu einem einzigen Leerzeichen, das sich noch innerhalb der "" Tags befindet. So funktioniert HTML Man –

+0

@Carlos tatsächlich sind es die Browser, die es fälschlicherweise dort eingeben. http://www.w3.org/TR/html401/appendix/notes.html#notes-line-breaks ist klar, wie dies gerendert werden soll. Das Problem besteht darin, dass es aufgrund der Einrückung einen Tabstop zwischen dem Zeilenumbruch und dem Closing-Element gibt. In der Theorie, das Schließen a ohne Einrückung sollte das beheben, aber es tut nicht (zumindest nicht in IE8 und FF3) – Gordon

1

setzen &nbsp; unmittelbar nach dem </a> Tag

+0

Funktioniert nicht. Es wird immer noch einen Platz geben. –

5

Schließen Sie das 'a' Tag direkt nach dem nächsten, ohne eine neue Zeile, wie folgt aus:

<a href="/module/controller/course/id/5" class="accessible-link">Click here</a> 
+0

Ja, es funktioniert so. Aber ich möchte öffnende Tags, Anker und schließende Tags in separaten Zeilen haben, um sauberere HTML-Vorlagen zu erhalten. –

+1

Woher kommt der Raum? Der Browser ist durch den Leerraum verwirrt und es gibt nichts, was Sie tun können, um es aufzuräumen. – DampeS8N

1

Einfach fragen, können Sie wie folgt versuchen?

<a href="/module/controller/course/id/5" class="accessible-link">Click here</a> 

Nicht sicher, ob dies funktioniert, aber einen Versuch wert.

+0

Ja, das funktioniert so. Aber ich möchte öffnende Tags, Anker und schließende Tags in separaten Zeilen haben, um sauberere HTML-Vorlagen zu erhalten. –