English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

مسار التشريح <clippath> لـ SVG

يُستخدم مسار القطع في SVG (يُسمى أيضًا SVG القطع) لقطع أشكال SVG بناءً على مسار معين. تكون الأجزاء الداخلية من المسار مرئية، بينما تكون الأجزاء الخارجية غير مرئية.

مثال مسار القطع

هذا مثال بسيط على مسار القطع:

<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <defs>
        <clippath id="clipPath">
            <rect x="15" y="15" width="40" height="40"></rect>
        </clippath>
    </defs>
    <circle cx="25" cy="25" r="20" style="fill: #0000ff; clip-path: url(#clipPath); "></circle>
</svg>
<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <defs>
        <clippath id="clipPath2">
            <rect x="15" y="15" width="40" height="40"></rect>
        </clippath>
    </defs>
    <circle cx="25" cy="25" r="20" style="fill: #0000ff; clip-path: url(#clipPath2); "></circle>
    <rect x="15" y="15" width="40" height="40" style="stroke: #000000; fill:none;"></rect>
</svg>
اختبار لرؤية‹/›

هذا المثال يحدد مسار قطع يشبه شكل المربع (الشكل في علامة <clipPath>)، ويُستخدم الدائرة المحددة في نهاية المثال من خلال خاصية CSS clip-path باستخدام id الخاص بـ <clipPath>.

في الأسفل اليسار هو الصورة المولدة. على اليمين، نفس الصورة، ولكن أيضًا تم رسم مسار التقليم.

لاحظ أن فقط الجزء الدائري من المسار التقليمي مرئي. الجزء المتبقي سيتم تقليمه.

مسارات تقليم متقدمة

يمكنك استخدام أشكال أخرى غير المثلثات كمسار تقليم. يمكنك استخدام دائرة، دائرة بيضاوية، مثلث أو مسار مخصص. أي شكل SVG يمكن أن يكون مسار تقليم.

هذا مثال على استخدام عنصر <path> كمسار تقليم، لأن هذه هي أنواع المسارات التقليمية الأكثر تقدماً التي يمكنك استخدامها. سيتم تطبيق مسار التقليم على عنصر <rect>.

<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <rect x="5" y="5" width="190" height="90" style="stroke: none; fill:#00ff00;"></rect>
</svg>
<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <defs>
        <clippath id="clipPath3">
            <path d="M10,10 q60,60 100,0 q50,50 50,50 l40,0 l-40,40 l-100,-20"></path>
        </clippath>
    </defs>
    <rect x="5" y="5" width="190" height="90" style="stroke: none; fill:#00ff00; clip-path: url(#clipPath3);"></rect>
</svg>
اختبار لرؤية‹/›

هذه هي الصورة المولدة - على الجانب الأيمن. على الجانب الأيسر، يتم عرض الصورة بدون مسار التقليم.

تقليم المسار على المجموعة

يمكن استخدام مسار التقليم على مجموعة من أشكال SVG بدلاً من استخدامها على كل شكل على حدة. فقط ضع الأشكال داخل علامة <g>، ثم قم بتعيين خاصية CSS clip-path على علامة <g>. إليك مثال:

<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <rect x="5" y="5" width="190" height="90" style="stroke: none; fill:#00ff00;"></rect>
    <circle cx="20" cy="20" r="20" style="stroke: none; fill: #ff0000;"></circle>
</svg>
<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <defs>
        <clippath id="clipPath4">
            <rect x="10" y="20" width="100" height="20"></rect>
        </clippath>
    </defs>
    <g style="clip-path: url(#clipPath4);">
        <rect x="5" y="5" width="190" height="90" style="stroke: none; fill:#00ff00;"></rect>
        <circle cx="20" cy="20" r="20" style="stroke: none; fill: #ff0000;"></circle>
    </g>
</svg>
اختبار لرؤية‹/›

فيما يلي صورة بدون مسار تقليم، ثم صورة تطبيق مسار التقليم:

النص كمسار تقليم

يمكن أيضًا استخدام النص كمسار تقليم. إليك مثال:

<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <rect x="5" y="5" width="190" height="90" style="stroke: none; fill:#00ff00;"></rect>
    <circle cx="20" cy="20" r="20" style="stroke: none; fill: #ff0000;"></circle>
</svg>
<svg width="200" height="100" style="border: 1px solid #cccccc;">
    <defs>
        <clippath id="clipPath5">
            <text x="10" y="20" style="font-size: 20px;">
                هذا نص
            </text>
        </clippath>
    </defs>
    <g style="clip-path: url(#clipPath5);">
        <rect x="5" y="5" width="190" height="90" style="stroke: none; fill:#00ff00;"></rect>
        <circle cx="20" cy="20" r="20" style="stroke: none; fill: #ff0000;"></circle>
    </g>
</svg>
اختبار لرؤية‹/›

هذه هي النتائج مع وبدون مسار التشريح:

هذا نص

كما ترونه الآن، يظهر فقط جزء من الشكل الداخلي للنص.