openharmony 鸿蒙 js-service-widget-common-mediaquery

2025-06-12 浏览 (1)

Media Query

Media queries are widely used on mobile devices. You can use them to modify the application style based on the device type or specific features and device parameters (such as the screen resolution). Specifically, media queries allow you to:

  1. Design a layout style based on the device and app attributes.

  2. Update the page layout to adapt to dynamic screen changes (for example, screen splitting or switching between landscape and portrait modes).

NOTE

The APIs of this module are supported since API version 8. Updates will be marked with a superscript to indicate their earliest API version.

The media attribute uses the actual size, physical pixel, and screen resolution of the device by default. Do not confuse them with the configuration based on basic screen width 720 px.

CSS Syntax Rules

Use @media to import query statements. The rule is as follows:

@media [media-type] [and|not|only] [(media-feature)] {
  CSS-Code;
}

Example:

@media screen and (round-screen: true) { … } // The condition is met when the device screen is round.

@media (max-height: 800) { … } // Range query. CSS level 3 is used.

@media (height <= 800) { ... } // Range query. CSS level 4 is used, and the statement is equivalent to that of CSS level 3.

@media screen and (device-type: tv) or (resolution < 2) { … } // Multi-condition query that contains the media type and multiple media features.

Referencing Resources on a Page

Use @import to import a media query. The rule is as follows:

@import url [media-type] [and|not|only] [(media-feature)];

Example:

@import '../common/style.css' screen and (min-width: 600) and (max-width: 1200);

Media Type

TypeDescription
screenMedia query based on screen-related parameters.

Media Logical Operation

Media logical operators (and, or, not, and only) are used to implement complex media query. They can also be combined using comma (,). The following table describes the operators.

Table 1 Media logical operators

TypeDescription
andThe and operator is used to combine multiple media features into one media query, in a logical AND operation. The query is valid only when all media features are true. It can also combine media types and media functions.
For example, screen and (device-type: wearable) and (max-height: 600) indicates that the query is valid when the device type is wearable and the maximum height of the application is 600 pixel units.
notThe not operator is used to perform a logical negation for a media query. true is returned if the query condition is not met. Otherwise, false is returned. In a media query list, logical negation is performed only for the media query using the not operator.
For example, not screen and (min-height: 50) and (max-height: 600) indicates that the query is valid when the height of the application is less than 50 pixel units or greater than 600 pixel units.
You must specify the media type when using the not operator.
onlyThe only operator applies the selected style only when the entire expression is matched. It can be used to prevent ambiguity on browsers of earlier versions. The statements that contain both media types and media features produce ambiguity when they are received by some browsers of earlier versions. For example:
screen and (min-height: 50)
The browsers of earlier versions would mislead this sentence into screen, causing the fact that the specified style is applied when only the media type is matched. In this case, the only operator can be used to avoid this problem.
You must specify the media type when using the only operator.
,(comma)The or operator is used to combine multiple media features into one media query, in a logical OR operation. The query is valid if a media feature is true. The effect of a comma operator is equivalent to that of the or operator.
For example, screen and (min-height: 1000), (round-screen: true) indicates that the query is valid when the minimum height of the application is 1000 pixel units or the device screen is round.
orThe or operator is used to combine multiple media features into one media query, in a logical OR operation. The query is valid if a media feature is true.
For example, screen and (max-height: 1000) or (round-screen: true) indicates that the query is valid when the maximum height of the application is 1000 pixel units or the device screen is round.

At MediaQuery Level 4, range query is imported so that you can use the operators including <=, >=, <, and > besides the max- and min-operators.

Table 2 Logical operators for range query

TypeDescription
<=Less than or equal to, for example, screen and (height <= 50).
>=Greater than or equal to, for example, screen and (height >= 600).
<Less than, for example, screen and (height < 50).
>Greater than, for example, screen and (height > 600).

Media Features

TypeDescription
heightHeight of the display area on the application page.
min-heightMinimum height of the display area on the application page.
max-heightMaximum height of the display area on the application page.
widthWidth of the display area on the application page.
min-widthMinimum width of the display area on the application page.
max-widthMaximum width of the display area on the application page.
resolutionResolution of the device. The unit can be dpi, dppx, or dpcm. Where:
- dpi indicates the number of physical pixels per inch. 1 dpi ≈ 0.39 dpcm.
- dpcm indicates the number of physical pixels per centimeter. 1 dpcm ≈ 2.54 dpi.
- dppx indicates the number of physical pixels in each pixel. (This unit is calculated based on this formula: 96 px = 1 inch, which is different from the calculation method of the px unit on the page.) 1 dppx = 96 dpi.
min-resolutionMinimum device resolution.
max-resolutionMaximum device resolution.
orientationScreen orientation.
Options are as follows:
- orientation: portrait
- orientation: landscape
aspect-ratioRatio of the width to the height of the display area on the application page.
Example: aspect-ratio:1/2
min-aspect-ratioMinimum ratio of the width to the height of the display area on the application page.
max-aspect-ratioMaximum ratio of the width to the height of the display area on the application page.
device-heightHeight of the device.
min-device-heightMinimum height of the device.
max-device-heightMaximum height of the device.
device-widthWidth of the device.
min-device-widthMinimum width of the device.
max-device-widthMaximum width of the device.
round-screenScreen type. The value true means that the screen is round, and false means the opposite.
dark-mode6+Whether the device is in dark mode. The value true means that the device is in dark mode, and false means the opposite.

Sample Code

<!-- xxx.hml -->
<div>
  <div class="container">
    <text class="title">Hello World</text>
  </div>
</div>
/* xxx.css */
.container {
  width: 300px;
  height: 600px;
  background-color: #008000;
}

@media (device-type: wearable) {
    .container-inner {
        justify-content: center;
        align-items: center;
        padding: 40px 26px;
    }

    .title {
        text-align: center;
    }

    .detail_text {
        max-lines: 2;
        text-align: center;
    }
}

@media (device-type: tv) {
    .title {
        font-size: 16px;
    }

    .detail_text {
        font-size: 12px;
    }
}

@media (device-type: car) {
    .title {
        font-size: 12px;
        color: #FFFFFF;
        font-family: @id_text_font_family_medium;
    }

    .detail_text {
        font-size: 12px;
        margin-top: 2px;
        font-family: @id_text_font_family_regular;
        color: #FFFFFF;
    }
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙JavaScript Service Widget UI Components

harmony 鸿蒙Data Types

harmony 鸿蒙button

harmony 鸿蒙calendar

harmony 鸿蒙chart

harmony 鸿蒙clock

harmony 鸿蒙divider

harmony 鸿蒙image

harmony 鸿蒙input

harmony 鸿蒙progress

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/DTQllP