묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨핵심만 골라배우는 CSS3
피그마 활용하기 부분에 대해 질문있습니다.
안녕하세요 CSS 강의를 결제해서 듣고 있습니다. 피그마 활용법 - 파일 불러오기 부분에서 파일은 어디서 받을 수 있나요?
-
미해결Tailwind CSS로 만드는 멋진 웹 UI 스타일링
메인 폰트 사용법이 궁금합니다.
4.0 기준으로 학습하고 있습니다.input.css 파일을 아래와 같이 작성하면자동으로 Montserrat 폰트 즉 첫번째 줄 폰트가적용되는건가요?메인 폰트 적용 방법을 모르겠습니다.@theme { --font-mont: "Montserrat", "sans-serif"; --font-noto: "Noto Sans KR", "Arial", "sans-serif"; /* Color */ --color-deepgreen:#6ab04c; --color-deeporange:#f0932b;}
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
npm install --save @tinymce/tinymce-react 오류 입니다.
리액트 버젼이 19.0 이상이라서 안된다고하는데 리액트를 다운그레이드해야하나요??...리액트를 다운그래이드 안하고 사용하는 방법은 없을까요?
-
해결됨Markdown과 HTML/CSS로 만드는 고급 PDF 제작
화면이 두번째 강의 부터 안나와요
화면이 안나와요
-
해결됨이거 하나로 종결-스프링 기반 풀스택 웹 개발 무료 강의
백엔드 개발자가 프론트 지식 얻을 때 필요한 방향성 질문
저는 비전공자로 지금 html,css javascript에 대한 기본적인 지식을 갖고있으며스프링을 응용하여 블로그정도의 웹 페이지를 만들 수 있는 수준이라고 생각합니다하지만 최근 기업 트렌드를 보면 백엔드 개발자만을 원하는 것이 아닌 풀스택개발자를 원하는 것이 추세인것 같습니다. 이 추세에 대비하기위해 어떤 언어를 최우선적으로 학습해야할지 궁금합니다. ex)node.js,next.js, was , docker...개발자로 성장하기 위한 방향성을 알려주시면 매우 감사드립니다.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
react에 반영이 되지 않습니다.
App.js, child.js 모두 강의 내용과 같이 작성 후 터미널에서 실행시켜 보았는데 리액트 초기화면만 표시되고 있습니다. 캐시 삭제, vscode 재시작 등을 시켜보았으나 변함이 없습니다. 왼쪽 화면이 App.js 코드 내용대로 바뀌지 않는 이유가 무엇일까요?
-
미해결3D리플릿 만들기 - 인터랙티브 웹 프로젝트
Babel의 사용법 아래 링크의 영상이 비공개 동영상이라고 뜹니다.
비공개 영상인데, 어떻게 영상을 볼 수 있나요?
-
미해결웹 애니메이션의 새로운 표준, Web Animations API
스크롤 이미지 영역 넘어갈시 가로로 스크롤이 안되여
스크롤 이미지 영역 넘어갈시 가로가 움직여서 여러개의 이미지영역이 보이는게 안되여ㅠㅠ선생님 완성본 02.html도 안되는거같아요css@charset 'utf-8'; html, body, h1, h2, h3, h4, h5, h6, p, blockquote, code, img, dl, dt, dd, ol, ul, li, fieldset, legend, caption { margin: 0; padding: 0; border: 0; } div, span, article, section, header, footer, p, ul, li, fieldset, legend, label, a, nav, h1, h2, h3 { box-sizing: border-box; } html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; } article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } ol, ul, li { list-style: none; } table { border-collapse: collapse; border-spacing: 0; } img { max-width: 100%; height: auto; } html { font-size: 20px; font-family: Roboto; line-height: 1.6; } body { background: dodgerblue; } .wrap{ contain: paint; } .para { padding: 1em; font-size: 50px; } .gallery{ display: flex; align-items: center; position: sticky; top: 0; width:350vw; max-width: 4000px; height: 100vh; border: 10px dashed deeppink; } .gallery-item{ width:70vw; max-width: 800px; flex-shrink: 0; } .gallery-timeline{ height:2000px; border:10px dashed mediumaquamarine; }02.jsimport './scroll-timeline.js' const gallery = document.querySelector('.gallery'); const galleryTimeline = document.querySelector('.gallery-timeline'); gallery.animate( [ {transform : 'translayeX(0)'}, {transform : 'translayeX(-100%)'} ], { fill : 'both', timeline : new ScrollTimeline ({ scrollOffsets : [ {target : galleryTimeline, edge : 'start' , threshold : 1}, {target : galleryTimeline, edge : 'end' , threshold : 1} ] }) } );
-
해결됨이거 하나로 종결-스프링 기반 풀스택 웹 개발 무료 강의
수강하는데 얼마나 걸릴까요
안녕하세요. 수강해보려고 하는데, 최대한 빠르게 끝내보고 싶습니다.c++ 문법 정도만 알고 있는 수준인데, 공부 기간은 얼마 정도로 예상하시나요?
-
미해결구글 애드센스 수익형 워드프레스 블로그 만들기
서브도메인 이름은 아무거나 해도되나요?
서브도메인 이름은 아무거나 해도되나요?
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
완전 생초보
수강전 문의 했을때강사님께서 프로그램은 비주얼스튜디오코드 무료 다운받아 쓰라고만 하셔서 다운 받아서 겨우겨우 따라하고 있는데요.1. HTML5 핵심 태그 사용법(문단, 텍스트 서식)강의를 들으려고 하니 Brackets 이라는 프로그램으로 강의를 하십니다.어찌어찌 Brackets 이라는 프로그램을 찾아서 깔긴 했지만시작을 또 어떻게 해야할지를 모르겠네요.비주얼스튜디오코드에서는 했던 새파일 만들기? html, css 그것부터Brackets 이라는 프로그램은 만들려고 하니 이미 만들어져 있다고 하고만들어져 있는것을 지우려하니 에러가 발생했다하네요.프로그램이 맞게 깔렸는지도 모르겠지만어떻게 시작을 해야할까요?분명 초보라 말씀 드렸는데초보를 위한 강의는 아니신듯 해서 난감합니다.
-
미해결프로그래밍 시작하기 : 웹 입문 (Inflearn Original)
마지막에 news 관련 질문
.link-group li > a { color: #606060; font-weight: 800; } .link-group li > a:visited { color: #000000; font-weight: 800; } .link-group li > a:hover { color:#ff0000; font-weight: 800; } <footer> <div class="link-group"> <h4> 관련 뉴스 </h4> <ul> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> </ul> </div> <div class="link-group"> <h4> 인기 뉴스 </h4> <ul> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> <li><a href="#">뉴스 기사1</a></li> </ul> </div> </footer> </div> </body> </html>영상 보면서 따라 코드를 작성하였습니다. 하지만 밑에 관련 뉴스나 인기 뉴스를 보면 이미 방문한 것처럼 표현 되어있습니다 혹시 무엇이 문제인지 확인 해주실 수 있나요?
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
tailwind css 버젼 다름문제
노션에 링크에 들어가면 https://tailwindcss.com/docs/installation/using-vite여기로 옮겨지는데 강의 내용과 완전히 다른 터미널 명령어를 알려줍니다. 홈페이지말고 강의 처럼 따라하니깐 init 부분에서 npm error could not determine executable to runnpm error A complete log of this run can be found in: C:\Users\shin\AppData\Local\npm-cache\_logs\2025-02-11T09_22_29_046Z-debug-0.log이런 오류가 뜨는데 새로 변경된 홈페이지를 따라해야하나요?따라해야한다면 어떻게 하면될까요?
-
미해결웹 애니메이션의 새로운 표준, Web Animations API
vscode에서 svg파일 불러오기 질문
선생님 안녕하세요 svg를 vscode에서 불러오기를 했는데, vscode에서 이미지로 열립니다 소스로 안열리는데 소스로 열리게 하는법이 있을까요?
-
미해결애플 웹사이트 인터랙션 클론!
drawImage(objs.videoImages[sequence], 0, 0); error
function setCanvasImages() { let imgElem; for(let i = 0; i < sceneInfo.values.videoImageCount; i++) { imgElem = new Image(); imgElem.src = `./images/picdiet 1/${1 + i}.jpg`; sceneInfo[0].objs.videoImages.push(imgElem); } // /home/ibmuser01/src/images/picdiet 1/1.jpg } setCanvasImages(); function setLayout() { // 각 스크롤 섹션의 높이 세팅 for (let i = 0; i < sceneInfo.length; i++) { if (sceneInfo[i].type === 'sticky') { sceneInfo[i].scrollHeight = sceneInfo[i].heightNum * window.innerHeight; } else if (sceneInfo[i].type === 'normal') { sceneInfo[i].scrollHeight = sceneInfo[i].objs.content.offsetHeight + window.innerHeight * 0.5; } sceneInfo[i].objs.container.style.height = `${sceneInfo[i].scrollHeight}px`; } yOffset = window.pageYOffset; let totalScrollHeight = 0; for (let i = 0; i < sceneInfo.length; i++) { totalScrollHeight += sceneInfo[i].scrollHeight; if (totalScrollHeight >= yOffset) { currentScene = i; break; } } document.body.setAttribute('id', `show-scene-${currentScene}`); } function calcValues(values, currentYOffset) { let rv; // 현재 씬(스크롤섹션)에서 스크롤된 범위를 비율로 구하기 const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; if (values.length === 3) { // start ~ end 사이에 애니메이션 실행 const partScrollStart = values[2].start * scrollHeight; const partScrollEnd = values[2].end * scrollHeight; const partScrollHeight = partScrollEnd - partScrollStart; if (currentYOffset >= partScrollStart && currentYOffset <= partScrollEnd) { rv = (currentYOffset - partScrollStart) / partScrollHeight * (values[1] - values[0]) + values[0]; } else if (currentYOffset < partScrollStart) { rv = values[0]; } else if (currentYOffset > partScrollEnd) { rv = values[1]; } } else { rv = scrollRatio * (values[1] - values[0]) + values[0]; } return rv; } function playAnimation() { const objs = sceneInfo[currentScene].objs; const values = sceneInfo[currentScene].values; const currentYOffset = yOffset - prevScrollHeight; const scrollHeight = sceneInfo[currentScene].scrollHeight; const scrollRatio = currentYOffset / scrollHeight; switch (currentScene) { case 0: let sequence = Math.round(calcValues(values.imageSequence, currentYOffset)); objs.context.drawImage(objs.videoImages[sequence], 0, 0); if (scrollRatio <= 0.22) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.42) { // in objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.62) { // in objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.82) { // in objs.messageD.style.opacity = calcValues(values.messageD_opacity_in, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageD.style.opacity = calcValues(values.messageD_opacity_out, currentYOffset); objs.messageD.style.transform = `translate3d(0, ${calcValues(values.messageD_translateY_out, currentYOffset)}%, 0)`; } break; case 2: // console.log('2 play'); if (scrollRatio <= 0.25) { // in objs.messageA.style.opacity = calcValues(values.messageA_opacity_in, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_in, currentYOffset)}%, 0)`; } else { // out objs.messageA.style.opacity = calcValues(values.messageA_opacity_out, currentYOffset); objs.messageA.style.transform = `translate3d(0, ${calcValues(values.messageA_translateY_out, currentYOffset)}%, 0)`; } if (scrollRatio <= 0.57) { // in objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_in, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_in, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } else { // out objs.messageB.style.transform = `translate3d(0, ${calcValues(values.messageB_translateY_out, currentYOffset)}%, 0)`; objs.messageB.style.opacity = calcValues(values.messageB_opacity_out, currentYOffset); objs.pinB.style.transform = `scaleY(${calcValues(values.pinB_scaleY, currentYOffset)})`; } if (scrollRatio <= 0.83) { // in objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_in, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_in, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } else { // out objs.messageC.style.transform = `translate3d(0, ${calcValues(values.messageC_translateY_out, currentYOffset)}%, 0)`; objs.messageC.style.opacity = calcValues(values.messageC_opacity_out, currentYOffset); objs.pinC.style.transform = `scaleY(${calcValues(values.pinC_scaleY, currentYOffset)})`; } break; case 3: // console.log('3 play'); break; } } function scrollLoop() { enterNewScene = false; prevScrollHeight = 0; for (let i = 0; i < currentScene; i++) { prevScrollHeight += sceneInfo[i].scrollHeight; } if (yOffset > prevScrollHeight + sceneInfo[currentScene].scrollHeight){ enterNewScene = true; currentScene++; document.body.setAttribute('id', `show-scene-${currentScene}`); } if(yOffset < prevScrollHeight){ enterNewScene = true; if(currentScene === 0) return; currentScene--; document.body.setAttribute('id', `show-scene-${currentScene}`); } if(enterNewScene) return; playAnimation(); } window.addEventListener('scroll', () => { yOffset = window.pageYOffset; scrollLoop(); }); window.addEventListener('load', setLayout); window.addEventListener('resize', setLayout); })(); main.js:181 Uncaught TypeError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The provided value is not of type '(CSSImageValue or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or OffscreenCanvas or SVGImageElement or VideoFrame)'. at playAnimation (main.js:181:30) at scrollLoop (main.js:292:9) at main.js:297:9이러한 에러가 나요.이미지 파일은 여기에 저장되어있슴돠.
-
미해결쉽고 빠른 스타일링 Tailwind CSS 기초 가이드
tailwind v4
안녕하세요! 25년 1월에 v4가 새롭게 등장했는데, v4로 해도 상관 없겠죠?
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
강의 내용 질문있습니다.
■ 질문 남기실 때 꼭! 참고해주세요.실전 퍼블리싱1 강의 듣고 있는데 표 제작 관련 강의와 예제는 따로없을까요 ?
-
해결됨Figma 디자인부터 퍼블리싱까지
Content Reel에서 Apply All이 안됩니다.
안녕하세요.Content Reel 플러그인을 이용해서하나의 사각형에 이미지 넣거나, 같은 이미지를 여러 사각형에 넣는것은 되는데 Apply All버튼은 반응을 안합니다.텍스트는 되는데 이미지만 안되는것 같은데,이미지의 Apply All을 하기 위한 특수 조건이 있나요?(로그인이 안된것 같아서 컴퓨터 재부팅까지 해보았습니다.)화면 캡쳐 첨부합니다. 확인 부탁드립니다.감사합니다.
-
해결됨React, Node.js, MongoDB로 만드는 나만의 회사 웹사이트: 완벽 가이드
ch9-3 배포하기는 따로 동영상강의가 1월말에 올라온다는 것인가요?
📢 질문을 작성하기 전에 꼭 읽어주세요! 📢질문 전에 준비할 것스스로 먼저 확인하기같은 문제를 겪은 사람이 있는지 인터넷에서 검색해보세요. 대부분의 경우 비슷한 사례를 쉽게 찾을 수 있습니다.오류와 코드를 다시 한번 점검하기간단한 실수나 오타가 없는지 확인해보세요. (예: 변수 이름, 함수 호출 방식 등)문제 상황 정리하기본인이 겪고 있는 문제를 정확히 이해하고, 어떤 상황에서 발생하는지 메모해보세요.질문 작성 시 유의할 점간결하고 명확한 제목문제를 한눈에 이해할 수 있도록 제목을 작성하세요. ("React에서 상태값 초기화 문제"처럼 구체적으로!)상황 설명 포함문제가 발생한 맥락과 이미 시도했던 해결 방법을 간략히 정리해서 알려주세요.코드 공유문제가 발생한 코드를 첨부하여 보여주세요.강의 관련 질문강의 내용과 관련된 질문이라면 문제가 발생한 강의의 시간이나 챕터를 반드시 적어주세요.추가 안내사항답변을 받으면 꼭 확인하고 감사 인사를 남겨주세요. 작은 반응도 답변자에게 큰 동기부여가 됩니다!질문 게시판에서는 서로를 존중하며 커뮤니케이션해주세요.강의 외적인 문의(예: 계정 문제, 결제 등)는 고객센터를 이용해주세요.여러분의 꼼꼼한 질문이 더욱 빠르고 정확한 답변으로 이어질 수 있습니다. 😊
-
해결됨모던 웹 인터렉티브 CSS3 부트캠프 [Full vers.]
자바강의도 하나짜리 full버전이 나오나요?
자바강의 신청하려고하는데 이전사례처럼 하나짜리 통으로 풀버전으로 편집되서 출시될지 궁금해요