Ошибка Firefox 1 пикселя с коллапсом границы, обходным решением?

Посмотрев вглубь, он прямо вперед.

AsyncTask:

Это простой способ использовать поток , ничего не зная о модели потока Java . AsyncTask дает различные обратные вызовы, относящиеся к рабочему потоку и основному потоку.

Используйте для небольших операций ожидания, таких как:

  1. Извлечение некоторых данных из веб-сервисов и отображение поверх макета.
  2. Запрос к базе данных.
  3. Когда вы понимаете, что запущенная операция никогда не будет вложенной.

Handler:

Когда мы устанавливаем приложение в Android, оно создает поток для этого приложения с именем MAIN UI Thread. Все действия выполняются в этой ветке. По правилу однопоточной модели android мы не можем получить доступ к элементам пользовательского интерфейса (растровое изображение, текстовое представление и т. Д.) Напрямую для другого потока, определенного внутри этого действия.

Обработчик позволяет вам общаться с потоком пользовательского интерфейса из другого фонового потока. Это полезно в Android, так как Android не позволяет другим потокам напрямую взаимодействовать с потоком пользовательского интерфейса. Обработчик может отправлять и обрабатывать объекты Message и Runnable, связанные с MessageQueue потока. Каждый экземпляр обработчика связан с одним потоком и очередью сообщений этого потока. Когда создается новый обработчик, он привязывается к потоку / очереди сообщений потока, который его создает.

Лучше всего подходит для:

  1. Позволяет создавать очереди сообщений.
  2. Планирование сообщений.

Thread:

Теперь пришло время поговорить о теме.

Thread является родителем как AsyncTask, так и Handler. Они оба внутренне используют поток, что означает , что вы также можете создать свою собственную модель потока , такую ​​как AsyncTask и Handler, но для этого требуется хорошее знание реализации многопоточности Java .

36
задан Glorfindel 24 March 2019 в 11:59
поделиться

6 ответов

Уберите границу-коллапс и вместо этого используйте cellspacing = 0.

<table style="border: 15px solid green; width: 100%"  cellspacing="0">

Это происходит потому, что когда вы устанавливаете border-collapse: collapse, Firefox 2.0 помещает границу за пределы tr. Другие браузеры помещают его внутрь.

Установите ширину границы в коде на 10 пикселей, чтобы увидеть, что на самом деле происходит.


редактировать после редактирования OP

Вы можете использовать старый трюк с «рамкой» таблицы. Установите цвет фона на столе. Установите белый цвет для td и th. User cellspacing = 1;

table {background-color: green;width:100%;}
td, th{background-color:white;}

<div style="padding: 50px">
<div style="border: 1px solid red">Table header info</div>
<table cellspacing="1" >
        <tbody>
                <tr>
                        <th>Col1</th>
                        <th>Col2</th>
                </tr>
                <tr>
                        <td>Hello</td>
                        <td>World</td>
                </tr>
        </tbody>
</table>
<div style="border: 1px solid red">Table footer info</div>
</div>
18
ответ дан 27 November 2019 в 06:07
поделиться

Я не думаю, что когда-либо слышал об ошибке «1 пиксель влево». Вам следует загрузить свой код куда-нибудь, чтобы мы могли его проверить и убедиться, что это не «Я пропустил» что-то где-то "ошибка :) Я бы также посоветовал пройтись по вашей разметке с помощью Firebug, чтобы определить, что еще не так.

0
ответ дан 27 November 2019 в 06:07
поделиться

Для тех, кто предпочитает не использовать разметку в презентации или у кого нет доступа к разметке, вот чисто CSS-решение. Я сам столкнулся с этой проблемой и протестировал это решение в FF3.5, IE6, IE7, IE8, Safari 4, Opera 10 и Google Chrome.

table { border-spacing: 0; *border-collapse: collapse; } 

Это заставляет таблицу использовать интервалы между границами во всех браузерах (включая виновника, Firefox). Затем он использует хак со звездочкой CSS, чтобы представить правило свертывания границы только для IE, который неправильно применяет интервалы между границами (вы также можете включить отдельную таблицу стилей для IE с условными комментариями, если вам не нравятся хаки).

Если вы предпочитаете использовать интервал между ячейками, обязательно используйте его. Это просто предлагается как альтернативный метод с использованием CSS.

22
ответ дан 27 November 2019 в 06:07
поделиться

таблица {border-spacing: 0; граница-коллапс: коллапс; } / * работает в FF 3.5 * /

2
ответ дан 27 November 2019 в 06:07
поделиться

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

0
ответ дан 27 November 2019 в 06:07
поделиться

Пробежался по этой проблеме и как обходной маневр. Я использовал:

table{border-collapse:separate;border-spacing:1px;border:none;background-color:#ccc;}
table td{border:none;}

в основном обманул границу, используя цвет фона. Что, таким образом, предотвратило двойные внутренние границы.

0
ответ дан 27 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: