분류 전체보기
여태까지 고쳐온 오류들 : 웹메일 이미지가 엑박뜨는 경우
웹메일 이미지가 엑박뜨는 경우 네이버 등으로 일괄발송하는 웹메일폼의 경우이다. 1. https가 아닌 http 링크로 걸린 이미지는 보안상 불러오지 않는 듯 하다. https 경로인지 확인하자. 2. 혹시 바보같이 절대경로가 아닌 상대경로로 되어있는 (../images.png) 이미지가 아닌지 확인하자. 사용자의 pc에는 니 파일이 없다.
여태까지 고쳐온 오류들 : 사파리 텍스트 커지는 문제
사파리 텍스트 커지는 문제 사파리는 특정 태그 폰트사이즈를 씹는 이슈가 있다. 보통은 reset에서 지정하지만 혹시 빠져있는지 확인하자. html, body{ -webkit-text-size-adjust : none; /* 크롬, 사파리, 오페라 신버전 */ -ms-text-size-adjust : none; /* IE */ -moz-text-size-adjust : none; /* 파이어폭스 */ -o-text-size-adjust : none; /* 오페라 구버전 */ } 호환성 : 보다시피 비표준 속성이므로 벤더 프리픽스를 이용해야 한다.
여태까지 고쳐온 오류들 : 사파리 영상 백그라운드가 안 뜬다/자동재생된다
여태까지 고쳐온 버그들 시리즈는 똑같은 오류가 발생하지 않도록 하고, 똑같은 오류가 발생했을 시 조속한 대처를 할 수 있도록 기록하는 시리즈다. 숫자 순서대로 시도해본다. 사파리 영상 백그라운드가 안 뜬다/자동재생된다 webm 확장자로 바꿔보기 아래태그로 시도해보기 (playsinline을 먹여야 사파리에서 영상이 팝업되며 자동재생되는 것을 막을 수 있다)
뒤늦게 알아서 뼈아픈 유용한 CSS : background-blend-mode
background-blend-mode background-blend-mode는 포토샵에 있는 레이어 블랜드 모드를 html에서도 구현할 수 있도록 도와준다. 백그라운드 img url을 두개를 적으면 앞 이미지가 뒷 이미지에 블랜드된다. (자식 div 백그라운드를 부모 백그라운드에 블랜드하는 식은 안 된다. : 혹시 되는 형태를 발견하면 수정할 것) div { background: url(../images/blend.png) center 40% no-repeat, url(../images/bg.png) center no-repeat; background-size: 276px 46px, cover; background-blend-mode: hard-light; } 위 코드는 내가 실사용했던 코드를 수정한 ..
뒤늦게 알아서 뼈아픈 유용한 CSS : aspect-ratio
뒤늦게 알아서 뼈아픈 유용한 css 시리즈는 내가 2년넘게 스스로 홈페이지 구축을 해오다 늦게 알아버린 css 모음이다. 또 까먹어서 어마어마한 시간을 들여 이 작은 css 한개를 구현하는 것을 막고자 블로그에 담는다. aspect-ratio aspect-ratio는 이미지나 객체의 비율을 지정해 반응형 등을 직관적으로 다룰 수 있게 도와준다. div { width: 100px; aspect-ratio: 4 / 3; /* 4:3 비율*/ } img, input[type="image"], video, embed, iframe, marquee, object, table { aspect-ratio: attr(width) / attr(height); } 호환성 : IE 빼고 전부 가능
[mdn, 드림코딩, 코딩애플] 콜백함수 (1) : 동기와 비동기 개념
콜백함수 자바스크립트는 동기적(synchronous) 언어이다. 이 말은 코드를 작성한 순서에 맞춰 동기적으로 실행된다는 말이다. 아래는 비동기적으로 실행되는 함수이다. console.log('1'); setTimeout(() => console.log('2'), 1000); console.log('3'); //1 //3 //2 Synchronous callback function printImmediately(print) { print(); } printImmediately(() => console.log('hello')); Asynchronous callback function printWithdelay(print, timeout) { setTimeout(print, timeout); } printW..