Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2019, 00:30   #1
TYMON
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 80
По умолчанию Отображение стилей для iOS Safari

Здравствуйте. Нашел в интернете код для отображения текстового аккордеона, на всех устройствах хорошо работает, и адаптирован, кроме устройств iOS , а также браузера Safari. Подскажите, пожалуйста, как правильно преобразовать/дополнить данный код, так чтобы он отображался перечисленных системах?

Код:
<style>
* 
* Формируем базовый контейнер аккордеона 
*/
.accordion {
    width: 100%;
/*
ширина произвольная выбирается
*в зависимости от места размещения 
*/
    max-width: 600px;
    min-height: 0;
    display: block;
/* относительное позиционирование */
    position: relative;
    margin: 0 auto;
    padding: 0;
    background-color: #fefffa;
    overflow: hidden
}
/* заголовки панелей аккордеона */
.accordion h2 {
    font-size: 16px;
    font-weight: 300;
    letter-spacing: 1px;
    display: block;
    margin: 0;
    padding: 10px 25px;
    cursor: pointer;
    color: #f4f4f4;
    background: #2d8bbb;
    border-top: 1px solid #3face4;
    border-bottom: 1px solid #2479a5;
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
/* заголовки панелей аккордеона при наведении
* в данном варианте не срабатывает
*/
/* .accordion h2:hover {
    display: block;
    background-color: #005049;
}
*/
 
/* Формируем блоки с содерханием */
.msg {
  position: relative;
  overflow: hidden;
  max-height: 800px;
  opacity: 1;
  transform: translate(0, 0);
}
 
/* оформляем параграфы */
.msg p {
  color: rgba(48, 69, 92, 0.8);
  font-size: 13px;
  line-height: 20px;
  letter-spacing: 1px;
  padding: 0 20px
}
 
/* Позаботимся о небольших экранах */
@media (max-width: 550px) {
  .accordion {
    box-sizing: border-box;
    transform: translate(0, 0);
    max-width: 100%;
    min-height: 100%;
    margin: 0;
    left: 0;
  }
} 
 
/* Формируем неупорядоченный список */
.accordion ul {
  list-style: none;
  perspective: 900;
  padding: 0;
  margin: 0;
}
 
/* Определяем и формируем отдельный элемент списка 
 * в который поместим скрытый флажек,
 * заголовок панелей и блок с содержанием
*/
.accordion ul li {
  position: relative;
  padding: 0;
  margin: 0;
}
 
/* устанавливаем время ожидания перед воспроизведением анимации 
 * на основе нумерации в дереве элементов
*/
.accordion ul li:nth-of-type(1) {
  animation-delay: 0.5s;
}
.accordion ul li:nth-of-type(2) {
  animation-delay: 0.75s;
}
.accordion ul li:nth-of-type(3) {
  animation-delay: 1s;
}
.accordion ul li:last-of-type {
  padding-bottom: 0;
}
 
/* Сформируем  указатель переключения состояния аккордеона */
.accordion ul li i {
  position: absolute;
  transform: translate(-6px, 0);
  margin-top: 16px;
/* расположим указатель на панели заголовка справа */
  right: 25px;
}
 
/* "Рисуем " сам указатель */
.accordion ul li i:before, .accordion ul li i:after {
  content: "";
  position: absolute;
  background-color: #eee;
  width: 3px;
  height: 9px;
}
/* Добавляем элемент трансформации указателя при переключении */
.accordion ul li i:before {
  transform: translate(-2px, 0) rotate(45deg);
}
.accordion ul li i:after {
  transform: translate(2px, 0) rotate(-45deg);
}
 
/* Делаем чекбокс скрытым*/
.accordion ul li input[type=checkbox] {
  position: absolute;
  cursor: pointer;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  opacity: 0;
}
/* Когда у флажка установлен checked  
 * блок с содержанием скрыт
*/
.accordion ul li input[type=checkbox]:checked ~ div.msg {
  margin-top: 0;
  max-height: 0;
  opacity: 0;
  transform: translate(0, 50%);
}
/* А указатель показывает вниз */
.accordion ul li input[type=checkbox]:checked ~ i:before {
  transform: translate(2px, 0) rotate(45deg);
}
.accordion ul li input[type=checkbox]:checked ~ i:after {
  transform: translate(-2px, 0) rotate(-45deg);
}
/*  Устанавливаем эффект перехода
 * между двумя состояниями указателя 
*/
div.msg, ul li i:before, ul li i:after {
    transition: all 0.5s ease-in-out;
}
/**
 * Изображения внутри аккордеона
 * ...сделаем их отзывчивыми
 */
.accordion .msg img {
    width: 100%;
    height: auto;
    -moz-box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
    -webkit-box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
    box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
}
 
/* полноразмерная картинка */
.msg img .large-img {
    width: 100%;
    margin-bottom: 10px;
}
/* миниатюра слева */
 .msg img.img-left {
    width: 25%;
    float:left;
    margin:5px 15px 5px 0;
}
/* миниатюра справа */
.msg img.img-right {
    width: 25%;
    float:right;
    margin:5px 0 5px 15px;
}
 
/* Встраиваемое видео */
.video-responsive {
    margin: 20px;
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    -moz-box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
    -webkit-box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
    box-shadow: 0 8px 17px 0 rgba(0,0,0,0.2),0 6px 20px 0 rgba(0,0,0,0.19);
}
/* Предусмотри использование кода встраиваемого видео
 *через iframe, object или embed */
.video-responsive iframe,
.video-responsive object,
.video-responsive embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
</style>
HTML
Код:
<div class="accordion">
    <ul>
            <li><input type="checkbox" checked="checked" /><i></i>
            <h2 class="title_block">Тайтл</h2>
            <div class="msg">
                <p>&nbsp;</p>
                Текст
                <p>&nbsp;</p>
            </div>
            
        </li>
        <li><input type="checkbox" checked="checked" /><i></i>
            <h2 class="title_block">Тайтл</h2>
            <div class="msg">
                <p>&nbsp;</p>
                Текст
                <p>&nbsp;</p>
            </div>
        </li>
    </ul>
</div>

Последний раз редактировалось TYMON; 07.06.2019 в 00:38.
TYMON вне форума Ответить с цитированием
Старый 18.06.2019, 18:16   #2
web-coder
Пользователь
 
Аватар для web-coder
 
Регистрация: 27.05.2019
Сообщений: 70
По умолчанию

Что не так на iOS?
Лучший сервис выбора хостинга по параметрам.
Более 600 тарифов. Есть промокоды!
web-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильное отображение Text-weight в Safari Perepelenok HTML и CSS 0 13.11.2018 16:33
Вёрстка Safari Seinte HTML и CSS 1 04.09.2015 12:34
Не крутится спиннер на ios safari Yoh HTML и CSS 2 26.05.2015 13:49
Проблема с выводом RSS в Safari stepennwolf PHP 0 08.11.2011 21:00
Заставить перерисоваться safari Deight JavaScript, Ajax 0 28.04.2009 14:07