
در بخش اول این مقاله درباره resolve conflicting CSS declaration یه سری نکات گفته شد و در این پست درباره مرحله دوم Parse CSS یعنی proccess final CSS value بحث می کنیم.
بهتره برای قابل درک و شفاف تر بودن نکات، همراه با مثال پیش بریم:

همون طور که میبینین در قسمت CSS سه Declaration Block نوشته شده که تو هر کدوم چن تا Declaration هست و Property هر کدوم از Declaration ها دارای مقدار (Value) خاصی هست.
این Value ها برای اینکه مرورگر بتونه به المنت ها اعمال کنه 6 مرحله رو طی میکنن:
1- از بین تمام کدهای CSS که دولوپر نوشته ( Author ) تمام مقادیری که به Property های CSS تگ اعمال شدن شناسایی میشن. در مثال بالا برای پراپرتی width تگ p دو مقدار مختلف اعمال شده که هر دو شناسایی و آماده ی اعمال میشن. (Declared Value)
2- چون تو خیلی از موارد ممکن هست به یکی از Property های CSS در چند Declaration مختلف چندین مقدار تعین بشه در مرحله ی دوم با توجه به اولویت بندی Selector ها که در بخش اول مقاله دربارشون بحث شد، فقط یکی از اون مقادیر انتخاب میشه. پس width تگ p که بهش دو مقدار مختلف اعمال شده با توجه به اینکه اولویت سلکتور text. بالاتر از سلکتور ، p هست، برابر با 63% میشه. در این مرحله از Declaration هایی که در سورس های دیگه هم نوشته شده استفاده میشه. (Cascaded Value)
3- با توجه به قانون CSS، همه Property های CSS یک المنت باید مقدار (value) داشته باشن. در این مرحله حتی اگه دولوپر برای اون Property مقداری تعین نکرده باشه، مقدار پیش فرض اون Property اعمال میشه. در مثال بالا برای Property های padding یا margin تگ p هیچ مقداری تعین نشده ولی مقدار پیش فرض اون پراپرتی ها که برابر با 0px اعمال میشه. (Specified Value)
4- در مرحله چهار مقادیری که واحد Relative دارن (rem, em, vh, vw) به مقداری با واحد Absolute که همون px هست تبدیل میشن. CSS Keyword هایی مثل pink برای Property های color و background-color و یا bold و bolder برای font-weight هم به مقدار Absolute تبدیل میشن. (Computed Value)
5- در این مرحله محاسبه ی نهایی انجام میشه و تمام مقادیر با واحد Absolute آماده ی اعمال میشن. در مثال بالا برای تگ p مقدار width برابر 63 درصد width تگ پدرش(Parent Tag) هست که مقدار اون برابر با 226.8 px میشه. (Used Value)
6- در مرحله آخر مقادیری که اعشار دارن گرد میشن تا به صورت عدد صحیح در بیان تا مرورگر بتونه تفسیرشون کنه. (Actual Value)
پس :
با توجه به مراحل بالا، Property های زیر به این شکل محاسبه میشن:
1- مقدار width ،Property تگ p :
p{ width: 140px; }
.text{ width: 63%; }
عدد بدست آمده گرد و مقدار نهایی 227px اعمال میشه.

2- مقدار padding ،Property تگ p :

3- مقدار font-size ،Property روت (body و html) :

4- مقدار font-size ،Property تگ <"div class="wrapper> :
در مراحل بعدی هم هیچ کاری صورت نمیگیره و همون 36px اعمال میشه.

5- مقدار font-size ،Property تگ <p> :
