Тёмный

Stop using JS for things that CSS can solve 

Kevin Powell
Подписаться 939 тыс.
Просмотров 76 тыс.
50% 1

Опубликовано:

 

7 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 161   
@ZaidMarrie
@ZaidMarrie 2 года назад
I never knew about the :empty psuedo class. I feel like Kevin reveals all the secrets of HTML & CSS. Thanks Kevin!
@hikari1690
@hikari1690 2 года назад
More please! I feel stupid everytime I think of the time I've wasted solving with js but I look forward to the years I'll save with these
@AbdicateDotNet
@AbdicateDotNet 2 года назад
"Front-end fiends!" It's getting better. Great job! I love your videos.
@novanoskillz4151
@novanoskillz4151 2 года назад
😂😂😂
@darshanrajpattanaik2154
@darshanrajpattanaik2154 2 года назад
How you commented 1 days ago, video released 2 hours ago?
@julianflorez9972
@julianflorez9972 2 года назад
'Friend and friends' lol
@j-janz
@j-janz 2 года назад
Automatic captions still think it's friend and friends, though. 😅
@solvedfyi
@solvedfyi 2 года назад
fiends be feenin'
@kristianvassilev360
@kristianvassilev360 2 года назад
Selecting a parent? I've been waiting for that for years! Please show us 👍
@KevinPowell
@KevinPowell 2 года назад
I'll do a video on it soon-ish... for now, you can look up the :has() selector, but support for it is a ways off still
@efdrgn
@efdrgn 2 года назад
@@KevinPowell this should've been implemented a lot sooner! Need this ASAP Kevin speak to the web masters please!
@threeone6012
@threeone6012 2 года назад
I've programmed for years but I've never used :empty or :target. So awesome, thanks Kev!
@willsoe
@willsoe 2 года назад
Here's a contribution to this idea from a newbie. I once wrote a load of js to manage clicks on an animation of a timer wheel which would trigger a new image from the server. I got rid of it all and instead made the click end the animation and then attach a listener to an animationiteration to trigger the new image download. No js timing needed!
@kevinfisher7032
@kevinfisher7032 2 года назад
Kevin, kudos…another super useful video. I always look to CSS as the easiest, most bulletproof way to just get things done. For anyone who has been doing this longer than 5 years it’s great to see CSS easily solve problems that used to take hours of javascript faffing to do.
@CirTap
@CirTap 4 месяца назад
Pseudo selectors can also be combined: p:only-of-type:not(:only-child) for the single paragraph with the image, or the other way around: img:first-child + p:only-of-type to ignore the one with multiple paragraphs, again use :not() to reverse the logic.
@Yukitocyborg
@Yukitocyborg 2 года назад
Awesome content! Only-child is really good, it would have solved a problem I had before.
@anushikabhardwaj7201
@anushikabhardwaj7201 2 года назад
Wow, thank you so much. I needed this. Especially, this :empty is going to solve my problem 😇
@arthurcouto5163
@arthurcouto5163 2 года назад
kevin pls keep making videos, you really help me and many people to continue on this way of front-end development
@e11world
@e11world 2 года назад
I like the :target selector and I think a nice way to implement it would be to have an animation tied to it. Example would be to highlight in a way but fade it out after 1s.
@AverageCho
@AverageCho 2 года назад
Thats an awesome idea. Nice one two combo
@e11world
@e11world 2 года назад
@@AverageCho Thanks yea this target selector is amazing for this and if you already have smooth scroll in CSS, it's that much nicer.
@khalidsaifullahfuad
@khalidsaifullahfuad 2 года назад
Wow, that's really helpful. I recently faced the empty error message problem and fixed it with JS. Please make more videos like this.
@yt_brij
@yt_brij 2 года назад
Target and Empty is new for me Thanks for the informative Video 😉
@MrJettann
@MrJettann 2 года назад
Awesome content, Kevin!! I definitely want to see more such videos!
@rickardelimaa
@rickardelimaa 2 года назад
Just learned about _:empty_ a month ago when a markup script generated empty (p)aragraphs for row-breaks. Just thought "wonder if CSS has a solution for this". Will use _:target_ in the future. Learned something new there.
@NottsKnots
@NottsKnots 2 года назад
Hi Kevin, started watching your videos recently and there is lots of intresting stuff here. One request, could you cover some 'practical' topics in depth at some point? Perhaps your best practices for starting a new Bootstrap site with the current version? (seen the old series you did.) Or talk about an overview of how your organise your CSS and why? What is the best way to arrange CSS to make best use of cascading? In other words, taking the things you have shown from your more ' flashy' videos and showing how to apply the knowledge to a typical real world project. Thanks.
@pupinarvaja
@pupinarvaja 2 года назад
Loved the "scroll behaviour smoOoth" 4:25
@JDalmasca
@JDalmasca 2 года назад
Great tips! Definitely the right level of not-that-well-known, but also useful! Keep up the great work, Kevin! We appreciate it!
@toguppy1985
@toguppy1985 2 года назад
Love :target pseudo selector. have played with this and an animation so that it runs, identifies the area, and then removes the identifier
@TechBuddy_
@TechBuddy_ 2 года назад
In the target selector add an animation that just changes the brightness filter for a bit to highlight the target element instead of a red outline which I use all the time,it's easy to write, easy to use and very effective.
@cseymour97
@cseymour97 2 года назад
Target is one of my favorites. I love using it for dynamic tabs.
@MikeyMoNL
@MikeyMoNL 2 года назад
Before I found out about only-child I just used :first-child:last-child. That does the same trick.
@NiborGnittekeduog
@NiborGnittekeduog 2 года назад
My gosh! How often I have looked for :has to check the state of the implementation. It's getting closer!!
@aram5642
@aram5642 2 года назад
I would be curious to see you refactor css of a site, getting rid of complex selectors in favor of where and is.
@evandromottaz
@evandromottaz 2 года назад
Very nice Kevin, thanks for the useful tricks. Specially the :target...
@techforsolution2505
@techforsolution2505 2 года назад
Cool! I like the :target one.
@crim-son
@crim-son 2 года назад
You're making JavaScript Redundant with your videos 🥺🥺😍😍, Good work Mister Kevin
@WellSaint001
@WellSaint001 2 года назад
Thanks Kevin! This is really useful
@vasyaqwe2087
@vasyaqwe2087 2 года назад
Great tips as always, Kevin! Waiting for :has video
@Karthik-ug8ll
@Karthik-ug8ll 2 года назад
Hey kevin, Thanks for awesome contents,looking forward video on how "has" function works in css,thanks in advance😊
@CirTap
@CirTap 4 месяца назад
Just noticed I could've used :target for something I did lately with JS... if I slap an id on the element this should work. 🙂
@mj2758
@mj2758 2 года назад
Thank u so much Kevin and great content. we're really in need of these kind of videos
@AndreaASalvatierra
@AndreaASalvatierra 2 года назад
thank you! would love to know more about the has selector :D
@codernerd7076
@codernerd7076 2 года назад
Thanks I learned some new things! I'm a big fan of keeping things simple and get some work done 😁👍
@alanlewis1625
@alanlewis1625 2 года назад
Hi Kevin, nice video. The features you mention are useful. I do have a question, -not directly related to this content- I hope you can either suggest a solution, or point to a video you have previously made. That is, if I want to 'highlight' a navigation item / tab, that is currently being displayed e.g. this page, how can I do this using only CSS? Thanks
@KevinPowell
@KevinPowell 2 года назад
You need a class that changes the styling, and apply to to the link for that page. There is nothing in CSS that can know what page is actually the active one
@dillanclark864
@dillanclark864 2 года назад
I've watched a few of your videos before and I was like, yeah okay you have some good tips. But you sir, have earned yourself a sub and a like after these nifty little tricks. Very well done!
@jma6893
@jma6893 Год назад
oh wow, i didn't know about the :target one... that has so much potential... less .js to write haha... Thanks Kevin!
@ErikBlomqvistSwe
@ErikBlomqvistSwe 2 года назад
Nice to see the usage of thisisnotarealperson to display images of people, rather than a common avatar service, Kevin!
@bo4695
@bo4695 2 года назад
Hi mate, thanks for the tutorial! I was wondering if it is possible to remove the styles for the " :target " element for like after a few seconds or even based on an event. Thanks!
@arafat64
@arafat64 2 года назад
we are appreciate your effort Kevin thanks, I love the dynamic development logic it's very useful and helpful to save our time.
@yaycupcake
@yaycupcake 2 года назад
would love to see content on the has selector but also an update video on when it's usable too
@xingfucoder2627
@xingfucoder2627 2 года назад
Hi Kevin, great video. When will be available your SASS course?
@alwaysgratefulmixail7569
@alwaysgratefulmixail7569 Год назад
I've been in need of the :target pseudo class for a frontend mentor project for a whole month and something 😂 I thought I only have to use JavaScript 🤣
@Brandon-bg2de
@Brandon-bg2de 2 года назад
Nice video Kevin! I am wondering is it possible for built in css to handle click outside alerter for multiple mapped elements? Let’s say when we clicked outside of each element, the corresponding clicked element dissapear. I currently implement it with Javascript but it would be interesting if css can handle this too :)
@YurijVolkov
@YurijVolkov 2 года назад
I'm working with CSS since early 2000 and I noticed that I tend not to know about new features of it. I'm just using the same thing as part of a habit, knowing that it works... You should always learn continuously! Don't make oldfags mistakes! :D
@schmoris
@schmoris 2 года назад
You're the best Kevin, keep going! :)
@vickmackey24
@vickmackey24 2 года назад
6:44 Unrelated to your lesson, but does the pipe between "testimonials" and "flow" in the class attribute do something special here?
@404-UsernameNotFound
@404-UsernameNotFound 2 года назад
When looking at the .classList of the element using JS, it shows `DOMTokenList(3) ['testimonials', '|', 'flow']`. So the pipe is it's own class?
@KevinPowell
@KevinPowell 2 года назад
No, it's just a visual separator, picked it up from using CUBE CSS. It's technically a class that's just not doing anything at all. Might even be an invalid one, but it doesn't cause any problems.
@pixiedev
@pixiedev 2 года назад
Very helpful I'll use. but Is there any way to set different margin or other attributes for p tag (paragraph) if 2 p is continuous like demo para 1 demo para 2
@KevinPowell
@KevinPowell 2 года назад
You can select the second one with p + p...
@sahilmehraa
@sahilmehraa 2 года назад
Your videos has saved my time and efforts almost everyday. 😁
@ArifMatubber-km4nv
@ArifMatubber-km4nv 2 года назад
that was awesome thing. wow Thank you so much Kevin
@ScottLee64
@ScottLee64 2 года назад
Your videos make me less unenthusiastic about CSS. Thanks!
@clevermissfox
@clevermissfox 6 месяцев назад
5:30 hmm “tricks” with target?? What could that be?!
@MuhammadAhmedAshraf
@MuhammadAhmedAshraf 2 года назад
How the youtube and wikipedia has elements when they can't fit in to screen the position themselves top -215px and when there's enough space at the bottom the have top 200px like youtube has on the edit comment is through the use of intersection observer api and am i right api means functions, objects of a library and urls on web
@KevinPowell
@KevinPowell 2 года назад
My guess would be intersection observers, yes. In this case, the API is a bit different because it's one the browser uses, not an API you'd use to pull stuff from a server or whatever.
@alejandroingercher3020
@alejandroingercher3020 2 года назад
I really enjoy your content. You are like a box full of surprising css tools
@yusi9437
@yusi9437 2 года назад
Suddenly comments have popped up about your welcoming introduction "front end friends". Up until your previous upload I always thought you were saying "friend and friends" as in to welcome the viewer personally and then everybody else 😂
@stephenJpollei
@stephenJpollei 2 года назад
Yes I thought he was saying "friend and friends" when I first started watching his videos; just thought it was part of him being super nice. I hear "front-end friends" clearly now though.
@tigrafale4610
@tigrafale4610 2 года назад
What? I was sure it was friend and friends! It's just like with TheWarOwl, "I still have no clothes on".
@fakefury1198
@fakefury1198 2 года назад
So at like 8:18 when you're explaining the :not(:only-of-type), I see why this is really useful, but wouldn't just giving the element a specific class be better? I know that it is generally best to stay away from complex selectors, so I was just wondering if you would normally prefer a class over doing this.
@RaviRambaran
@RaviRambaran 2 года назад
Yes! Thank you Kevin!
@darkpain4208
@darkpain4208 2 года назад
Thanks, Kevin. You changed my life.
@MarekFodor
@MarekFodor Год назад
Damn, this is really helpful and saves lot of time.
@ManuelSanchez-hy8yi
@ManuelSanchez-hy8yi 2 года назад
Look forward to having your has() video!
@oohsorry4506
@oohsorry4506 2 года назад
Question: if u use the empty pseudo reset thingy on everything but Img svgs does it mean u cant make boxes from divs now, cuz its empty
@j-janz
@j-janz 2 года назад
Yes, bring :has() content on! 😊
@404-UsernameNotFound
@404-UsernameNotFound 2 года назад
:has() can be enabled in Chrome and Edge beginning in v101 with the enable-experimental-web-platform-features flag and is slated to be GA in v105.
@qm3ster
@qm3ster Год назад
I wonder if I should actually use :empty... Sounds like it would leave a bunch of hidden HTML in the DOM. I should probably just continue not including it, whether on the server or on the client.
@Brunoenribeiro
@Brunoenribeiro 2 года назад
:target blew my mind!
@MMH94MMH
@MMH94MMH 2 года назад
You are amazing Kevin, this video is a life changer for me.
@AbhinavKulshreshtha
@AbhinavKulshreshtha 2 года назад
About :target, wouldn't it mess with keyboard navigation? I used that property in the past for visually show the keyboard navigation. But other than that, I don't know much about it. I wish I knew about :empty in the past, I have spent so many hours hiding error messages and flash messages.
@KevinPowell
@KevinPowell 2 года назад
It shouldn't have any impact on keyboard navigation? It's just a visual clue for what's been targetted... you just wouldn't want to use the same style for :outline as you would for :target because then that would get annoying
@AndreSpecht
@AndreSpecht 2 года назад
Hi Kevin. Do you have a video that explains the differences between styles in html and * selectors? Thanks
@fylip22b
@fylip22b 2 года назад
Thanks for these tips! I improve my CSS knowledge. Philippe P
@TillmanTech
@TillmanTech 2 года назад
I like those profile pictures of Jane and John in the first segment on :empty. How many times did you have to refresh the page to get such good results? 😉
@KevinPowell
@KevinPowell 2 года назад
Showed up in my first load of loremfaces.com/ :)
@emreaydogdu5413
@emreaydogdu5413 2 года назад
Keep generating videos with your style! BTW, do not you speak a lot during video :) ? This is spiritual energy!
@GmodArgentina
@GmodArgentina 2 года назад
Kevin I'm currently learning Web design but after learning css I've become obssesed with it. You think it's better to become very good at css before jumping to Javascript or i should start now ?
@KevinPowell
@KevinPowell 2 года назад
I guess it depends on how far along you are, but once you feel like you're getting comfortable with CSS, even if you're not "very good" yet, I'd probably start sprinkling in some JS
@GmodArgentina
@GmodArgentina 2 года назад
@@KevinPowell Thanks that I'll do ! Should i start from scratch or straight to react ?
@kamilcopur6513
@kamilcopur6513 2 года назад
Perfect... Thank your for sharing..
@soul.rebel1986
@soul.rebel1986 2 года назад
Awesome as always 🎉
@kiravolvo
@kiravolvo 2 года назад
thank you kevin. you rock!
@demicoderr
@demicoderr 2 года назад
Thank you so much Kevin! Love your videos
@fazlerabbi9200
@fazlerabbi9200 2 года назад
These are really awesome!
@FunBSDpami
@FunBSDpami 6 месяцев назад
Great tips. Thx!
@dave6012
@dave6012 2 года назад
Love this approach. CSS is powerful 💪
@dave6012
@dave6012 2 года назад
PS- waiting fervently for :has() !!
@JoeBonez
@JoeBonez 2 года назад
What is the deal with the vertical bar in the class name (“testimonials | flow”)? I’ve never seen that before, and the google is failing me.
@KevinPowell
@KevinPowell 2 года назад
Comes from CUBE CSS, it's just a visual separator between "blocks" and "utililities"
@andertker4460
@andertker4460 2 года назад
Good content! Greetings from Bilbao!!
@ezikhoyo
@ezikhoyo 2 года назад
About the empty paragraphs: There is actually a selector, that's like :empty, but it includes whitespaces. It's called blank. "p:blank" would select all paragraphs containing nothing at all, HTML comments or whitespaces+new lines (doesnt matter if its one line, or 20 new lines filled with whitespaces).
@KevinPowell
@KevinPowell 2 года назад
Sadly it's not supported anywhere though :\
@lawrencedoliveiro9104
@lawrencedoliveiro9104 Год назад
Yeah, I go by MDN. I like to stick to features where the browser compatibility matrix shows an all-green row. In the case of “:blank”, it’s still all red ... 😞
@georgebradley4583
@georgebradley4583 2 года назад
Hi Kevin. Could you do a video on why it’s still important to know pure CSS when we have Bootstrap and WordPress? By the way, I love CSS and have watched practically all of your videos. I’m currently a national qualifier in Website Design and Development for a prestigious event called “WorldSkills”, here in the UK and your videos have been essential for my preparation for it. Thank you! Kind regards, George
@KevinPowell
@KevinPowell 2 года назад
Well, unless you want your site to look like every other Bootstrap site, understanding CSS makes it a lot easier to work with and customize Bootstrap. I'd also say knowing CSS just makes you use Boostrap much better as well... plus while Bootstrap is popular, it's not *that* popular, and probably fading within the job market as well for other solutions. Knowing the base language makes it a lot easier to pivot and adapt as the landscape changes :) Also, good luck with the WorldSkills competition! I was a mentor a couple of times for those when I was still working at a school :)
@georgebradley4583
@georgebradley4583 2 года назад
@@KevinPowell Wow! Thanks for so quickly responding! Ah really good answer! Thank you! Totally agree! And thanks so much! That means so much coming from the King of CSS!
@djvesko
@djvesko 2 года назад
Thanks for these!
@RussellDove
@RussellDove 2 года назад
Greetings, awesome content. Would you happen to know of a good web form validation script that increases accessibility by enabling screen readers to announce error messages?
@KevinPowell
@KevinPowell 2 года назад
Oh, that would be great. I don't know of one... there must be something out there though. Time to start digging
@s7s_space
@s7s_space 2 года назад
How to make active class on links for nav in target?
@GR_BackingTracks
@GR_BackingTracks 11 месяцев назад
I am madly, deeply in love with CSS...
@eren1514
@eren1514 2 года назад
Hey Kevin! Love your content! but I'm really a dumb on responsive side :D May you make a clone project that focus on responsive side, such as cards, nav... thank you!
@robertcarsten4050
@robertcarsten4050 2 года назад
Have you checked out Kevin's Responsive design course? Can't post links but if you search Kevin powell responsive design it should be the first link
@anushervonTabarov
@anushervonTabarov Год назад
THANK YOU FROM TAJIKISTAN !
@misticx
@misticx 2 года назад
Very useful tips, gj.
@sssamalander
@sssamalander Год назад
Could you use this to make a carousel?
@andystevenson6336
@andystevenson6336 2 года назад
This is excellent Kevin. Would like to see something on :has
@Technoph1le
@Technoph1le 2 года назад
Hi, Kevin! I have a question regarding custom properties. Consider you have design that has more than 10 neutral colors. And, you are assigning them in custom properties in such: :root { --clr-neutral-100: #FFF; --clr-neutral-400: #444; ..... --clr-neutral-900: #222; } In custom properties, you did assign from 100 to 900, which can hold only 9 values. What and how do you deal with the rest of the neutral colors? Would you assign them, like ---clr-neutral-100_1 or any other method? Thanks in advance.
@fredhair
@fredhair 2 года назад
From a design perspective if you've got more than 9 neutral colors, I think you're using too many colors for sure. Most color schemes only have a handful of neutral colors. You really don't need a different shade for every single component in your page. I tend to use a primary & secondary color with maybe 3 or 4 shades each and a light & dark neutral color with 4 or 5 shades. If you want to build a brand, you will likely have 2 or 3 colors that you actually use with a handful of neutral tones to complement / contrast your main colors. For most people a scale of 9 shades is more than enough for a single 'color'. You might have a light neutral and dark neutral which also have a 9 shade range but rarely will you need such fine distinctions between shades unless you're creating a gradient which you'd interpolate anyway.
@KevinPowell
@KevinPowell 2 года назад
Yeah, more than 9 shades of a color is a lot... BUT if you need to, I just keep going, lol. 900, 1000, 1100, etc. Though normally what happens is a new color gets added that's between two existing colors, which is why I like numbering in the 100s. If you have clr-neutral-1 and clr-neutral-2, it's annoying to get something in the middle... with 100s, you can have clr-100, clr-150, clr-200 etc.
@nitsanbh
@nitsanbh 2 года назад
Please do :has() It’s a game changer!
@abdulkadirguven1173
@abdulkadirguven1173 Год назад
Thanks Kevin
@xingfucoder2627
@xingfucoder2627 2 года назад
great video! when will be available the SASS course? 🙂
@KevinPowell
@KevinPowell 2 года назад
don't ask 🤣🤣 - taking a break from working on it to read some comments... it's getting there... slowly, lol.
@xingfucoder2627
@xingfucoder2627 2 года назад
@@KevinPowell don't worry Kevin ☺️ take rest. Thanks for quick answer
@jpisello
@jpisello 2 года назад
Wow. I'd never seen :only-child and :only-of-type before. I've "hacked" them before by doing :first-child:last-child, but :only-child is much easier to read and understand.
@jcubic
@jcubic 2 года назад
:only-child is nice, you can replace it with older :first-child:last-child this how you use to do the same.
@uc9773
@uc9773 2 года назад
nice tip thanks!
@michaelm8044
@michaelm8044 2 года назад
You're the man, man.
Далее
3 useful CSS hacks
8:50
Просмотров 70 тыс.
Avoid These 5 Awful CSS Mistakes
20:42
Просмотров 193 тыс.
IT'S MY LIFE + WATER  #drumcover
00:14
Просмотров 15 млн
Linkin Park: FROM ZERO (Livestream)
1:03:46
Просмотров 7 млн
5 Useful CSS Properties You Didn't Know
18:17
Просмотров 57 тыс.
JavaScript for the Haters
2:50
Просмотров 1,5 млн
Using CSS custom properties like this is a waste
16:12
Просмотров 169 тыс.
A new approach to container and wrapper classes
25:27
Просмотров 256 тыс.
dialog = the easiest way to make a popup modal
9:40
Просмотров 191 тыс.
How you can simplify your CSS with :is()
9:20
Просмотров 334 тыс.
Top 10 CSS One Liners That Will Blow Your Mind
13:34
Просмотров 950 тыс.
IT'S MY LIFE + WATER  #drumcover
00:14
Просмотров 15 млн