AlexZaw

Expert
  • Content count

    608
  • Joined

  • Last visited

  • Days Won

    49

AlexZaw last won the day on October 17 2019

AlexZaw had the most liked content!

Community Reputation

93 Хорошая

7 Followers

About AlexZaw

  • Rank
    Активный участник
  • Birthday 12/03/1978

Information

  • Sex
    мужской
  • From
    Томск
  • Interests
    Верстка, книги, EVE Online :)

Recent Profile Visitors

3,730 profile views
  1. Sharmat, У вас не закрыты теги. А именно: <A HREF="http:ru.wikipedia.org/wiki/HTML" TARGET="_blank">вся статья<A> и тег таблицы. Также приведите к одному виду все ваши наименования ID. А то у вас в HTML они написаны маленькими буквами, а в CSS большими. Названия классов и id - регистрозависимы.
  2. по идее может спасти pointer-events:none; правда придется для всяческих input-ов и т.п. прописывать поведение курсора при наведении
  3. как это стыкуется между собой? 🙂
  4. Вообще-то можно, если убрать z-index у родителя. Но тогда возникнет другая проблема - будет видно правую тень у родителя и ее придется перекрывать вторым псевдоэлментом. Как-то так: <div class="box"></div> .box{ height: 50px; width: 200px; box-shadow: 0 0 10px #000; position: relative; background: #f00; border-radius: 5px; } .box:after, .box:before{ display: block; content: ''; height: 37px; width: 36px; position: absolute; left: calc(100% - 20px); top: 50%; transform: translateY(-50%) scaleX(.5) rotate(45deg); background: #f00; border-radius: 5px; } .box:after{ box-shadow: 0 0 10px #000; z-index: -1; } Можно воспользоваться способом выше, а можно, если совместимость не сильно важна, воспользоваться свойствами clip-path и filter: drop-shadow
  5. Не может. Все это легко делается с помощью html+css
  6. Код не смотрел, но вам нужно либо прописать тег viewport, либо познакомиться с медиа запросами
  7. Нужно просто знать как работают отрицательные маржины 🙂 У меня решение заняло чуть больше времени. Но я искал решение без использования дополнительного div. Единственный минус - не работает в IE6, но ведь в условии про него ничего и не сказано, верно? 🙂 Если бы до меня это сразу дошло, решил бы быстрее, а так где -то минут за 40 управился. Причем я не сказал бы что я хорошо разбираюсь в верстке 🙂 .columns { width: 100%; overflow: hidden; } .sidebar-left { width: 300px; float: left; } .sidebar-right { width: 300px; float: right; } .content{ width: 100%; float: left; box-sizing: border-box; padding-left: 300px; padding-right: 300px; margin-right: -100%; }
  8. С гаданиями по фотографии это не сюда, а к гадалке. Всегда пожалуйста.
  9. В верстке, в подавляющем большинстве случаев, нет единственно правильных решений. С одной стороны, для того что-бы не раздувать код, нужно делать якорь на тот тег на который отправляет ссылка. Но, с другой стороны, а если завтра этот тег поменяется, например, с параграфа на заголовок? Тогда выходит правильнее сделать пустой якорный тег 🙂
  10. попробуйте почитать здесь: http://qaru.site/questions/2898/cross-domain-iframe-issue/25767349#25767349
  11. а почему он должен что то видеть и кто решил что блок с текстом это "основной" блок? У вас абсолютно позиционированный родитель, а значит он принимает ширину контента. У input type="text" ширина по умолчанию равна 169px, плюс добавляем ширину кнопок по бокам, плюс бордер. Все вместе задает ширину для блока cont, так как является наиболее широким блоком. Ну а див с текстом просто растягивается по этой ширине, так как по умолчанию у дива ширина 100% В случае же замены инпута на див, самым широким становится именно блок с текстом, поэтому cont и становится уже
  12. AlexZaw

    ищу наставника

    Вы бы, для начала, рассказали что умеете, а то может вам с азов нужно все рассказывать 🙂
  13. Просто привык к ES5 🙂 Можно без проблем все var заменить на let, ну а const, на мой взгляд, здесь вообще негде использовать.
  14. var render = document.querySelector('[data-action="render"]'); var destroy = document.querySelector('[data-action="destroy"]'); var boxes = document.getElementById("boxes"); render.addEventListener("click", getAmount); destroy.addEventListener("click", destroyBoxes); function getAmount() { var amount = +document.querySelector("#controls input").value; createBoxes(amount); } function createBoxes(amount) { var basicSize = 30; var fragment = document.createDocumentFragment(); for (var i = 0; i < amount; i++) { var size = basicSize + i * 10; var div = document.createElement("div"); div.style.cssText = `width: ${size}px; height: ${size}px; background-color: rgba( ${random()} , ${random()} , ${random()} )`; fragment.appendChild(div); } boxes.appendChild(fragment); } function destroyBoxes() { boxes.innerHTML = ""; } function random() { return Math.floor(Math.random() * 256); }