Необъяснимое пространство добавлено внутри якоря! - PullRequest
5 голосов
/ 08 декабря 2010

EDIT:

Нет. Проигнорируйте это. Там место заносится браузером.


Это фрагмент HTML из моего приложения:

    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.

Как видите, после закрывающего тега есть один пробел. Тем не менее, в браузере пространство добавляется внутри якоря. Так это выглядит так:

alt text

Это код PHP, который создает HTML:

<?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"; ?>

Я полностью запутался в этом и не могу понять, что вызвало это, хотя я уже 30 минут смотрю на код.

Это релевантная часть из файла перевода:

'Kliknite' => 'Click here',

Как видите, Zend_Translate не должен добавлять пробелы.

Ответы [ 4 ]

5 голосов
/ 08 декабря 2010

Закрыть тег «a» сразу после следующего, без новой строки, например:

<a href="/module/controller/course/id/5" class="accessible-link">Click here</a>
4 голосов
/ 08 декабря 2010

Измените это:

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

На это:

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

</a> должно быть в той же строке после <?php echo Zend_Registry::get('translate')->_('Kliknite'), "\n"; ?> aka Нажмите здесь

РЕДАКТИРОВАТЬ:

Новая строка и пробелы после нее отображаются как 1 пробел, который все еще находится внутри тегов de <a></a>, то есть там, где пробелприходящий из.

EDIT2:

Для записи мне также не нравится, когда закрывающий тег находится рядом с содержимым, а не находится в новой строке, но так оно и есть.должно быть сделано для того, чтобы работать правильно.

Мне нравится хорошо отформатированный код, и я всегда ищу команду автоформатирования в моей IDE.

Но, по крайней мере, например, в Visual Studio, когда вы нажимаете Ctrl + K , Ctrl + D (Сокращение формата документа) закрывающие теги, такие как </a>, не перемещаются автоматически на новую строку по той же причине: чтобы они не нарушали внешний вид перед автоматическим форматированием.

1 голос
/ 08 декабря 2010

Просто интересно, ты можешь попробовать вот так?

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

Не уверен, что это сработает, но стоит попробовать.

1 голос
/ 08 декабря 2010

поставить &nbsp; сразу после тега </a>

...