Как исправить нумерованный список HTML, вызывающий вкладки после того, как список превышает 99? - PullRequest
2 голосов
/ 27 июня 2019

У меня есть скрипт Python, который использует smtplib, email.mime.multipart и email.mime.text для отправки электронного письма с нумерованным списком. После того, как список превышает 99, он вставляет вкладки после номера и портит форматирование.

Единственное, что до сих пор работало, это вставка разрыва строки после каждого числа, чтобы форматирование оставалось последовательным, но это выглядит не так хорошо.

for i in range(0:200):
    body_row = '<li>First line here <br>Second line here</li>'
    body_total += body_row
body_total = "Total List" + "<ol>" + body_total + "</ol>" + "<br>"

Вывод выглядит так:

99. First line here
    Second line here
100.    First line here
    Second line here
101.    First line here
    Second line here

Кто-нибудь знает простой способ исправить это, кроме моего решения для разрыва строки?

Ответы [ 2 ]

2 голосов
/ 27 июня 2019

Ваш вопрос не имеет ничего общего с программированием на Python, так как он в первую очередь касается того, как что-то отформатировать в HTML.

Я думаю, что ответом является использование тега HTML <ol> упорядоченный список , который будет делать то, что вы хотите (и вам не нужно явно нумеровать элементы самостоятельно).

<ol>
    <li>
        First line here<br />
        Second line here
    </li>
    <li>
        First line here<br />
        Second line here
    </li>
    <li>
        First line here<br />
        Second line here
    </li>
    <li>
        First line here<br />
        Second line here
    </li>
       .
       .
       .
</ol>

Результат, отображаемый в веб-браузере:

screenshot of result rendered by a web browser

1 голос
/ 10 июля 2019

Альтернативный способ. Моя первая попытка на питоне, так что будьте осторожны с этим.

print """<table width="100%" border="0" cellspacing="0" cellpadding="0">  
    <tbody>"""
for x in range(0, 200):
    rowData = """        <tr>
        <td> %d</td> 
        <td>first line<br> second line</td> 
    </tr>""" % (x)
    print rowData

print """    </tbody> 
</table>"""

Я использовал print, чтобы увидеть структуру моей таблицы, вы можете изменить их на переменные. Структура выше гарантирует, что ваши номера будут правильными на всех почтовых клиентах, и столбцы будут одинаковыми для всех. Ниже приведен скриншот того, как будет выглядеть вывод.

enter image description here

...