Как расположить абсолютный в отделении?

SMTP

Использование SMTP - это один из способов, а другие уже указали способы, как это сделать. Просто отметьте, что при этом вы полностью обойдете встроенное почтовое приложение и вам придется указать адрес SMTP-сервера, имя пользователя и пароль для этого сервера, либо статически в вашем коде, либо запросить его у пользователя. .

HTTP

Другой способ - использовать простой серверный скрипт, такой как php, который принимает некоторые параметры URL и использует их для отправки почты. Таким образом, вам нужно всего лишь сделать HTTP-запрос с устройства (это легко сделать с помощью встроенных библиотек) и не нужно хранить данные для входа в SMTP на устройстве. Это еще одно косвенное указание по сравнению с прямым использованием SMTP, но поскольку сделать запрос HTTP и отправлять почту из PHP очень легко, он может быть даже проще, чем прямой путь.

Почтовое приложение

Если письмо будет отправлено с учетной записи пользователя по умолчанию, которую он уже зарегистрировал в телефоне, вам придется использовать другой подход. Если у вас достаточно времени и опыта, вы можете проверить исходный код приложения электронной почты Android, чтобы узнать, предлагает ли оно какую-либо точку входа для отправки почты без взаимодействия с пользователем (я не знаю, но, возможно, есть такая).

Может быть, вы даже найдете способ запросить данные учетной записи пользователя (чтобы вы могли использовать их для SMTP), хотя я очень сомневаюсь, что это возможно, потому что это будет представлять огромную угрозу безопасности, а Android построен довольно надежно.

32
задан LinusGeffarth 9 December 2017 в 21:17
поделиться

3 ответа

Абсолютные div извлекаются из потока документа, поэтому содержащий div не имеет никакого содержимого, кроме заполнения. Задайте #box высоту, чтобы заполнить его.

#box {
    background-color: #000;
    position: relative;
    padding: 10px;
    width: 220px;
    height:30px;
}
30
ответ дан 27 November 2019 в 20:05
поделиться

Одно из #a или #b не должно быть position: absolute , так что #box будет расти, чтобы приспособиться к этому.

Таким образом, вы можете остановить #a из position: absolute , а по-прежнему позиционировать #b поверх вот так:

  #box {background-color: # 000; положение: относительное; отступ: 10 пикселей; ширина: 220 пикселей; } .a {width: 210px; цвет фона: #fff; отступ: 5 пикселей; } .b {width: 100px; / * Итак, вы можете увидеть другой * / position: absolute; верх: 10 пикселей; слева: 10 пикселей; цвет фона: красный; отступ: 5 пикселей; } #after {цвет фона: желтый; отступ: 10 пикселей; ширина: 220 пикселей; } 
  
Lorem
Lorem
< div id = "after"> Привет, мир

(Обратите внимание, что я изменил ширину, чтобы вы могли видеть одну за другой.)

Отредактируйте после комментария Жюстин: Тогда ваш единственный вариант - указать высоту #box. Это:

#box {
    /* ... */
    height: 30px;
}

работает отлично, если высоты a и b фиксированы. Обратите внимание, что вам нужно будет перевести IE в стандартный режим, добавив тип документа вверху вашего HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">

, прежде чем это будет работать правильно.

7
ответ дан 27 November 2019 в 20:05
поделиться

Проблема описана (среди прочего) в этой статье .

#box расположен относительно друг друга, что делает его частью «потока» страница. Остальные ваши div абсолютно позиционированы, поэтому они удалены из "потока" страницы.

Поток страниц означает, что позиционирование элемента влияет на другие элементы в потоке.

Другими словами, поскольку #box теперь видит дом, .a и .b больше не находятся «внутри» #box .

Чтобы исправить это, вам нужно сделать все относительным или все абсолютным.

Один из способов:

.a {
   position:relative;
   margin-top:10px;
   margin-left:10px;
   background-color:red;
   width:210px;
   padding: 5px;
}
7
ответ дан 27 November 2019 в 20:05
поделиться
Другие вопросы по тегам:

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