Jump to content
  • 0

Из PSD в HTML,CSS


vitaxastifler
 Share

Question

Ребята,объясните мне начинающему верстальщику,как сделать из PSD сделать сайт в HTML,CSS .

Я понятия не имею как с фотошопа вырезать картики,иконки,текст,и как всё воплотить в HTML.

Теоретически понимаю,а вот с чего начать не знаю.

http://www.picshare.ru/view/3341745/

 
Link to comment
Share on other sites

21 answers to this question

Recommended Posts

  • 0

не думаю что кто-то возьмется рассказывать вам все с азов.

если коротко, то:

1) градиентный фон, который имеет повторяющ. цвета по вертикали, или горизонтали - вырезается кусочек, а потом в css его повторяют.

2) если картинка цельная, но большая, опять же, ищем повтор. элементы, режем на составляющие кусочки, а в html и css все это склеиваем.

ну а все остальное - шрифт, размер, цвет и т.д... - все как на макете.

есть конечно и сложные картинки и фоны, но там уже кто как изголяется, кто-то даже в этот момент материт дизайнера )))

Link to comment
Share on other sites

  • 0

Объяснить что да как делать не реально. Проще в ютубе посмотреть видео где с psd верстаются сайты. Там как раз можно увидеть кто и как вытаскивает картинки  с фотошопа (с psd файла), лично мне (когда я только начинал) именно таким образом удалось понять как это делается. 

Edited by ya_verstaka
Link to comment
Share on other sites

  • 0

Ребята,объясните мне начинающему верстальщику,как сделать из PSD сделать сайт в HTML,CSS .

Я понятия не имею как с фотошопа вырезать картики,иконки,текст,и как всё воплотить в HTML.

Теоретически понимаю,а вот с чего начать не знаю.

http://www.picshare.ru/view/3341745/

 

Попробуй посмотреть http://psd2cms.ru/, я никогда не не знал как верстать, посмотрел, стало понятно.

Link to comment
Share on other sites

  • 0

Спасибо за помощь.

Да,я знаю HTML и CSS.

Но такое приходиться делать в первые.

Стижируюсь на фирме,читаю литературу...

 

Уже много понимаю,вот с позиционированием проблематично у меня(

Edited by vitaxastifler
Link to comment
Share on other sites

  • 0

Совет - когда вырежешь картинку в фотошопе - очень внимательно присматрись к готовой картинке в макете - возможно ты вырежишь неправильно и у нее не будет части свойств - вроде теней (которые на первый взгляд незаметны) или вообще картинка чуть другая - другой цвет, прозрачность или еще что. Далее уже ищи проблему - так как просто выделение с ctrl+c - не срабатывает для верстки.

А позиционирование одна из самых сложных для понимания вещей. Лучше составить краткий конспект и перечитывать несколько раз, пока не дойдет.

 

П.С. градиент картинкой - уже рудимент - css3 градиенты и изящная деградация в виде ровного цвета или его отсутствия.

Edited by Zverushka
Link to comment
Share on other sites

  • 0

Мне понравилась вот эта статья:

http://nicothin.ru/page/photoshop-dlja-html-verstalshhika

после неё нарезка макета не представляет сложностей.

Чтобы грамотно вырезать элемент, не повредив тени, просто тыкаю черной стрелкой на слой с нужной картинкой, дублирую его и делаю image-trim.

Link to comment
Share on other sites

  • 0
просто тыкаю черной стрелкой на слой с нужной картинкой, дублирую его и делаю image-trim.
 

При этом если тени по высоте больше слоя, то они просто обрежутся). В общем тонкостей очень много)...

Link to comment
Share on other sites

  • 0

 

просто тыкаю черной стрелкой на слой с нужной картинкой, дублирую его и делаю image-trim.
 

При этом если тени по высоте больше слоя, то они просто обрежутся). В общем тонкостей очень много)...

 

Чтобы тени не обрезались лучше использовать crop

Link to comment
Share on other sites

  • 0
П.С. градиент картинкой - уже рудимент - css3 градиенты и изящная деградация в виде ровного цвета или его отсутствия.

Эта тема http://htmlforum.ru/index.php?showtopic=46664&hl= доказывает обратное. Box-shadow — довольно тормозное свойство, не везде его следует применять. Да и в часто картинкой делать удобнее, например, если тень только с одной стороны от блока.

Link to comment
Share on other sites

  • 0

Так то боксшедов, а то градиент.

Упс, да, извиняюсь. Хотя CSS-градиенты тоже требуют больше ресурсов для отрисовки, чем статичные картинки, но они гораздо быстрее box-shadow.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Similar Content

    • By zeiger2
      Здравствуйте! У меня стоит задача, что при наведении на блок li строка должна поменять цвет, в том числе и картинка. Я меняю картинку с помощью 
      background-image: none;     background: url(../img/check_icon_red.png) left no-repeat;   Но теперь картинка позицианируется не там где должна, её можно поставить на место только вручную, через -100px. Нужно поставить ровно туда, где она была. Должна быть в одном ряду с другими
    • By Mix9
      есть див с 5 img, при уменьшении экрана див выходит за него. Я добавил overflow: auto для этого div в надежде на то, что я смогу прокручивать фотки с помощью скроллбара, однако даже с ним почему-то я не вижу часть фоток которые вышли за границу. Что с этим можно сделать? класс video повторяется 5 раз, я тут оставил только 1 
      .content{ width: 90%; background-color: #333; } .video{ margin: 0px 4px 0px 4px; width: 310; display: flex; flex-direction:column; } .video_button_text{ margin-top: 10px; display: flex; flex-direction: row; font-size: 20px; color: white; } .video_text_div{ display: inline-block; width: 250px; } .video_text{ text-align: justify-all; margin: 0px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .slidan_videos{ margin: 0px 10px 0px 20px; overflow: auto; width: auto; margin-bottom: 50px; display: flex; flex-direction: row; justify-content: space-around; } <div class="content"> <div class = slidan_videos> <div class = video> <div> <a href = 'ссылка'><img class="img" src=""картинка"></a> </div> <div class = video_button_text> <div class = avatarka_div> <a href="ссылка" target="_blank"><img class = avatarka src="картинка"></a> </div> <div class = video_text_div> <p class = video_text><a href="ссылка">текст</a></p> </div> </div> </div>
    • By Марко
      Добрый день. Начинающий программист, столкнулся с проблемой. Селектор .class не работает должным образом. Несмотря на правильное, я надеюсь, описание, на web-странице не отображается ни одно изображение. С чем может быть связано? Заранее спасибо за помощь. 



    • By Kaido
      Использую готовый плагин для модальных окон(от MaxGraph). Проблема в том, что когда у меня открыто два модальных окна, для примера Форма + Политика конфендициальности, и мне нужно закрыть политику вместе с ней закрывается и другое модальное окно. В JS я не сильно разбираюсь(собственно из за этого и использую готовый плагин), можете помочь кто работал с этим плагином? Я примерно понимаю как он работает, но реализовать чтобы закрывалось только одно не получается.
       
        <div class="content"> <button class="modal-btn" data-path="first" data-animation="fadeInUp" data-speed="1500">Открыть окно 1</button> </div> <div class="modal"> <div class="modal__wrapp" data-target="first"> <div class="modal__content"> <button class="modal__close">Закрыть</button> модальное окно <button data-path="policy">Политика</button> </div> </div> <div class="modal__wrapp" data-target="policy"> <div class="modal__content"> <button class="modal__close">Закрыть</button> политика </div> </div> </div> .modal { --transition-time: 0.3s; position: fixed; left: 0; top: 0; right: 0; bottom: 0; z-index: 1000; cursor: pointer; overflow-y: auto; overflow-x: hidden; text-align: center; opacity: 0; visibility: hidden; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp { display: none; cursor: default; width: fit-content; height: fit-content; } .modal__content{ position: absolute; left: 500px; width: 500px; height: 500px; display: flex; color: white; flex-direction: column; text-align: left; background-color: #000; } .modal__content button{ width: 200px; height: 50px; margin: 50px 0; } .modal.is-open { opacity: 1; visibility: visible; transition: opacity var(--transition-time), visibility var(--transition-time); } .modal__wrapp.modal-open { display: flex; } .disable-scroll { position: relative; overflow: hidden; height: 100vh; position: fixed; left: 0; top: 0; width: 100%; } .fade { opacity: 0; transition: opacity var(--transition-time); } .fade.animate-open { opacity: 1; transition: opacity var(--transition-time); } .fadeInUp { opacity: 0; transform: translateY(vw(-100)); transition: opacity var(--transition-time), transform var(--transition-time); } .fadeInUp.animate-open { opacity: 1; transform: translateY(0); transition: opacity var(--transition-time), transform var(--transition-time); } .modal__wrapp[data-target="policy"] .modal__content{ left: 1050px; background-color: #000; opacity: .5; } class Modal { constructor(options) { let defaultOptions = { isOpen: () => {}, isClose: () => {}, } this.options = Object.assign(defaultOptions, options); this.modal = document.querySelector('.modal'); this.speed = false; this.animation = false; this.isOpen = false; this.modalContainer = false; this.previousActiveElement = false; this.fixBlocks = document.querySelectorAll('.fix-block'); this.focusElements = [ 'a[href]', 'input', 'button', 'select', 'textarea', '[tabindex]' ]; this.events(); } events() { if (this.modal) { document.addEventListener('click', function(e){ const clickedElement = e.target.closest('[data-path]'); if (clickedElement) { let target = clickedElement.dataset.path; let animation = clickedElement.dataset.animation; if (clickedElement.classList.contains('modal-close')) { this.close(); } let speed = clickedElement.dataset.speed; this.animation = animation ? animation : 'fade'; this.speed = speed ? parseInt(speed) : 300; this.modalContainer = document.querySelector(`[data-target="${target}"]`); this.open(); return; } if (e.target.closest('.modal__close')) { this.close(); return; } }.bind(this)); window.addEventListener('keydown', function(e) { if (e.keyCode == 27) { if (this.isOpen) { this.close(); } } if (e.keyCode == 9 && this.isOpen) { this.focusCatch(e); return; } }.bind(this)); this.modal.addEventListener('click', function(e) { if (!e.target.classList.contains('modal__wrapp') && !e.target.closest('.modal__wrapp') && this.isOpen) { this.close(); } }.bind(this)); } } open() { this.previousActiveElement = document.activeElement; this.modal.style.setProperty('--transition-time', `${this.speed / 1000}s`); this.modal.classList.add('is-open'); this.disableScroll(); this.modalContainer.classList.add('modal-open'); this.modalContainer.classList.add(this.animation); setTimeout(() => { this.options.isOpen(this); this.modalContainer.classList.add('animate-open'); this.isOpen = true; this.focusTrap(); }, this.speed); } close() { if (this.modalContainer) { this.modalContainer.classList.remove('animate-open'); this.modalContainer.classList.remove(this.animation); this.modal.classList.remove('is-open'); this.modalContainer.classList.remove('modal-open'); this.enableScroll(); this.options.isClose(this); this.isOpen = false; this.focusTrap(); } } focusCatch(e) { const focusable = this.modalContainer.querySelectorAll(this.focusElements); const focusArray = Array.prototype.slice.call(focusable); const focusedIndex = focusArray.indexOf(document.activeElement); if (e.shiftKey && focusedIndex === 0) { focusArray[focusArray.length - 1].focus(); e.preventDefault(); } if (!e.shiftKey && focusedIndex === focusArray.length - 1) { focusArray[0].focus(); e.preventDefault(); } } focusTrap() { const focusable = this.modalContainer.querySelectorAll(this.focusElements); if (this.isOpen) { focusable[0].focus(); } else { this.previousActiveElement.focus(); } } disableScroll() { let pagePosition = window.scrollY; this.lockPadding(); document.body.classList.add('disable-scroll'); document.body.dataset.position = pagePosition; document.body.style.top = -pagePosition + 'px'; } enableScroll() { let pagePosition = parseInt(document.body.dataset.position, 10); this.unlockPadding(); document.body.style.top = 'auto'; document.body.classList.remove('disable-scroll'); window.scroll({ top: pagePosition, left: 0 }); document.body.removeAttribute('data-position'); } lockPadding() { let paddingOffset = window.innerWidth - document.body.offsetWidth + 'px'; this.fixBlocks.forEach((el) => { el.style.paddingRight = paddingOffset; }); document.body.style.paddingRight = paddingOffset; } unlockPadding() { this.fixBlocks.forEach((el) => { el.style.paddingRight = '0px'; }); document.body.style.paddingRight = '0px'; } } const modal = new Modal({ isOpen: (modal) => { console.log(modal); console.log('opened'); }, isClose: () => { console.log('closed'); }, });  
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy